//Opdaterer firma oplysninger public Status UpdateCompany(int companyId, string companyName, string companyAdress, int companyZipCode, string companyCity, int companyPhone, string companyEmail) { Status status = Status.Failure;
try { connect.command.CommandText = "UPDATE Company SET companyName = @companyName, companyAdress = @companyAdress, companyZipCode = @companyZipCode, companyPhone = @companyPhone, companyEmail = companyEmail WHERE companyId = @companyId";
Jeg vil spørge om det kan være noget med jeg ikke får lukket min database korrekt efter sidste åbning (jeg har nemlig ændret den del)?
Jeg åber databasen:
public class ERSConnect { //Constants public const string SessionUserId = "userid"; public const string CookieUsername = "username"; public const string CookieUserInfo = "userinfo"; public const string SessionAdminId = "adminid"; public const string CookieAdminname = "adminname"; public const string CookieAdminInfo = "admininfo"; public const int InvalidUserId = 0;
private OleDbConnection connection = null; public OleDbCommand command = null;
public ERSConnect() { connection = new OleDbConnection(connectionString); command = new OleDbCommand(); command.Connection = connection; connection.Open(); }
public void Dispose() { connection.Close(); } }
Jeg referer til den i: public class ERSCompany { ERSConnect connect = new ERSConnect();
hvor jeg så har selve kaldet til databasen. I kaldet kalder jeg så connect.Dispose(): //Opdaterer firma oplysninger public Status UpdateCompany(int companyId, string companyName, string companyAdress, int companyZipCode, string companyCity, int companyPhone, string companyEmail) { Status status = Status.Failure;
try { connect.command.CommandText = "UPDATE Company SET companyName = @companyName, companyAdress = @companyAdress, companyZipCode = @companyZipCode, companyPhone = @companyPhone, companyEmail = companyEmail WHERE companyId = @companyId";
connect.command.Parameters.Add(new OleDbParameter("@companyId", companyId)); skal stå til sidst - for OleDb tager sig IKKE af parameterNAVNE men kun af rækkefølge
Ja og det hjalp ikke at flytte fordi du har defineret flere parametre end der er i din SQl - tæl dem op !
Med typed data sets kan du gemme alt sql derude, og det er vildt nemt at ændre i, og så slipper man for alskens pjat med rækkefølge. Prøv at google på det. Ellers , opret et typed data set i din VS/VWD, og når du står i designeren højreklik og vælg new DataAdapter.
Fordelen er at man så refererer til data ved navn. F.eks, hvis du har et dataset med en tabel som hedder Companies, så kan du i din kode sige, til en række i Companies, som vi så benævner Company:
hvis du specificerer typen så vil systemet nok brokke sig runtime hvis en parameter af den forkerte type bliver sat til det forkerte sted, så det er nok også værd at prøve.
I dit tilfælde så var det en Integer som skulle sammenlignes med en String, og mit gæt er systemet ville have brokket sig, hvis der var en type på parameteren, i stedet for en eller anden bevidstløs automatisk typekonvertering begået af systemet:)
Ok - forsøgte at lege med det - men kunne ikke få hjælp herinde, da jeg normalt bruger accessdatabase og det sted jeg fandt, hvor det var nemmest var med sql database - og der fik jeg en fejl....som jeg som sagt ikke kunne få hjælp til - så opgav jeg og gør som jeg så plejer at gøre.....og jeg plejer ikke at have fejl i det....kun denne gang...
Og ja jeg mangnlede én men det er heller ikke nok til at den gemmer i databasen :-/
Har fundet fejlen nr. 2, ved at starte forfra (som gik godt). Sammenlignede linie for linie..... det var companyEmail = companyEmail.....
fungerer det nu så ? Og det med de typed data sets: prøv det. Det tager 1 time at sætte sig ind i, men sparer en heeeeeeeeeelvedes masse tid. Selv hvis jeg ikke skal bruge et helt dataset så bruger jeg det alligevel til prototyping, og undgår at have sql-kode spredt all over min applikation.
Hov sorry - det var ikke for at være negativ - forsøgte kun at forklare hvordan jeg har organiseret mig - ked af du opfattede det sådan. Tager altid gernne mod råd, da jeg jo gerne vil udvikle mig :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.