Avatar billede carpediem Nybegynder
19. marts 2003 - 00:12 Der er 2 kommentarer og
1 løsning

Insert og få ID

Hejsa

Jeg laver en insert med nedenstående kode, og vil gerne have ID´en på den netop indsatte række. Hvordan er det muligt?

Dim conn As New SqlConnection(ConfigurationSettings.AppSettings("Conn"))
conn.Open()

Dim cmd As New SqlCommand()
cmd.Connection = conn

q &= " INSERT INTO Brugere "
q &= " ( "
q &= "  Brugernavn"
q &= " , Kodeord "
q &= " ) "
q &= " VALUES "
q &= " ( "
q &= "  @Brugernavn "
q &= " , @Kodeord "
q &= " ) "

cmd.CommandText = q
cmd.Parameters.Clear()
cmd.Parameters.Add("@Brugernavn", Brugernavn.Text)
cmd.Parameters.Add("@Kodeord", Password.Text)

Try
  cmd.ExecuteNonQuery
Catch
  Throw
End Try
Avatar billede mortrr Praktikant
19. marts 2003 - 00:17 #1
SQL-server lidt a la:
Try
Conn.BeginTrans
cmd.ExecuteNonQuery
rs=cmd.Execute("select @@identity")
NyID=rs(0).Value
rs.Close
Conn.EndTrans
Catch
...


begin og endtrans er ikke altid nødvendige. Kommer an på connection.
Avatar billede carpediem Nybegynder
19. marts 2003 - 09:52 #2
Ok. Jeg endte med at gribe det an på en helt anden måde. Jeg bruger en Stored Procedure til, at indsætte data med og får den nye ID ud fra den.

SQL:

CREATE PROCEDURE dbo.sp_BrugereInsert
@Brugernavn varchar(20),
@Kodeord varchar(20),
@@ID int output

AS
INSERT INTO Brugere
(
Brugernavn,
Kodeord
)
VALUES
(
@Brugernavn,
@Kodeord
)


SET @@ID = @@identity

I min kode kører jeg derefter:

cmd.Parameters.Add("@Brugernavn", SqlDbType.Varchar, 20)
cmd.Paramaters["@Brugernavn"].Value = Brugernavn.Text;

cmd.Parameters.Add("@Kodeord", SqlDbType.Varchar, 20)
cmd.Paramaters["@Kodeord"].Value = Kodeord.Text;

cmd.Parameters.Add("@ID", SqlDbType.Int)
cmd.Paramaters["Brugernavn"].Direction = ParameterDirection.Output;

cmd.ExecuteNonQuery();

int iID = 0;
iID = Convert.ToInt32(cmd.Parameters["@ID"].Value);
Avatar billede burningice Nybegynder
19. marts 2003 - 13:34 #3
carpediem>> mener også at SP er den eneste "ordenlige" måde at gøre det på...
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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