Avatar billede conehead Nybegynder
04. april 2005 - 15:43 Der er 8 kommentarer og
1 løsning

find den autoindsatte private key

Jeg opretter en ny række i en tabel( tabel1 ).

I en anden tabel( tabel2 ), der skal bruge en fremmednøgle fra tabel1 vil jeg umiddelbart derefter indsætte data.

Spørgsmålet er nu, hvordan jeg finder ud af, hvilken private key, der blev indsat i tabel1, som skal bruges som fremmednøgle? Den bliver autogenereret i databasen, så det er ikke en jeg selv indsætter.
Avatar billede keysersoze Ekspert
04. april 2005 - 15:49 #1
hvilken database?
Avatar billede conehead Nybegynder
04. april 2005 - 15:49 #2
det er en MS SQL
Avatar billede keysersoze Ekspert
04. april 2005 - 15:55 #3
ved godt at de er med henblik på ASP-udvikling, men SQL-syntaksen er jo den samme såh;

http://www.opfinderen.dk/sites/13/
http://activedeveloper.dk/artikler/default.asp?articleid=40
Avatar billede arne_v Ekspert
04. april 2005 - 16:03 #4
SELECT @@IDENTITY

virker i alle sprog.

SQLServer guru'erne vil dog foretrække:

SELECT SCOPE_IDENTITY()
Avatar billede conehead Nybegynder
04. april 2005 - 16:13 #5
det ser jo godt ud. Jeg skal lige have det til at funge i c#.
Avatar billede conehead Nybegynder
04. april 2005 - 16:26 #6
Har forsøgt at returnere nøglen vha

SqlCommand getKey=new SqlCommand("SELECT @@IDENTITY",connPGuardDb);
SqlDataAdapter key=new SqlDataAdapter(getKey);
DataSet dset=new DataSet();
key.Fill(dset);

Jeg kan dog stadig ikke se værdien i mit dataset. Er der evt et alternativ til denne metode?
Avatar billede arne_v Ekspert
04. april 2005 - 16:43 #7
Prøv:

SqlCommand getKey=new SqlCommand("SELECT @@IDENTITY",connPGuardDb);
int id = (int)getKey.executeScalar();
Avatar billede arne_v Ekspert
04. april 2005 - 16:44 #8
ExecuteScalar

(stort E først)
Avatar billede conehead Nybegynder
05. april 2005 - 10:32 #9
jeg fandt ud af at jeg ikke kunne arbejde med disconnectede datasets så det var bare at holde forbindelsen åben indtil jeg har trukket nøglen ud.

Derfor anvendte jeg executeScalar. tak for det Arne :-)
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
Kurser inden for grundlæggende programmering

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