Avatar billede brian0905 Nybegynder
28. september 2006 - 10:47 Der er 3 kommentarer og
1 løsning

Indsætte og returnere id fra det indsatte

Hej,

Jeg er ved at lave et program i C#, der bruger MySQL. Jeg har en tabel med autonummer på id. Jeg vil gerne indsætte en record i tabellen og så samtidig få fat i det id, den er blevet tildelt. Jeg har prøvet lidt af hvert, bla. dette:

conn.Open();
      MySqlCommand mycmd = GetSqlCommand(conn, "insert into stepgroup(name, description, active) values (?name, ?description, ?active);select last_insert_id() from stepgroup");
      mycmd.Parameters.Add("?name", group.Name);
      mycmd.Parameters.Add("?description", group.Description);
      mycmd.Parameters.Add("?active", group.Active);
      int newid = (int)mycmd.ExecuteScalar();
      conn.Close();

hvor jeg til sidst laver en select som så skulle returnere mit seneste id (ifølge dokumentationen)... nogle der kan se hvad jeg gør galt?
Avatar billede erikjacobsen Ekspert
28. september 2006 - 10:53 #1
mysql-drivere har det normalt ikke godt med to sætninger adskilt af ";". Hvis du gør det af to omgange (på den samme connection), så sku' det virke.
Avatar billede brian0905 Nybegynder
28. september 2006 - 12:37 #2
Jepsen, fik det endeligt til at virke, ad store omveje fandt jeg ud af at jeg ikke direkte kunne typecaste til en int, når det var en unsigned int i databasen, så til alle andre: husk at typecaste til long i stedet :-)
Avatar billede brian0905 Nybegynder
28. september 2006 - 12:37 #3
giv lige et svar
Avatar billede brian0905 Nybegynder
24. november 2006 - 13:32 #4
Lukket
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester