DataTable i ADO.NET

Tags:    c#

Mit problem er:

Jeg har et udtræk af en SQL Server 2005 tabel liggende i en DataTable som igen ligger i et DataSet. Problemet er at når jeg indsætter en ny DataRow i tabellen, bliver den nye primarykey ikke automatisk tildelt?

Altså er der en smartere måde at på et nyt autonumber, i stedet for at skulle læse tabellerne igennem for at finde det nye nummer? Det skal hertil siges at tabellen er oprettet så den selv kan tildele autonumre, og den gør det også hvis der sendes et direkte sql-query til den!

---
Simon



5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
User
Bruger #464 @ 22.05.05 00:59
Du kan lave dit udtræk ved hjælp af en DataAdapter og så
opdaterer adapteren med datasettet.
Jeg går ud fra at det er fordi du skal bruge primanøglen
som fremmednøgle i en anden tabel du opdaterer samtidig.
hvis det er dit problem eller hvis du tror det kan hjælpe dig
vil jeg godt skrive et eksempel.



Sådan som jeg har løst det nu er ved at læse i tabellen inde i serveren, og lave en select max(primarykey) statement, hvilket naturligvis giver mig den højeste værdi af Primarykey repræsenteret i tabellen. Når jeg så opretter en ADO.NET tabel sætter jeg autoincrementseed til den højeste primarykey + 1.

Det virker selvfølgelig men jeg ville mene at der må være en smartere måde hvorpå man direkte importerer autoincrementseed sammen med tabelskemaet, jeg kan bare ikke lige finde det, så hvis der er nogle der ved det så sig det!

---
Simon



Du kan lave dit udtræk ved hjælp af en DataAdapter og så
opdaterer adapteren med datasettet.
Jeg går ud fra at det er fordi du skal bruge primanøglen
som fremmednøgle i en anden tabel du opdaterer samtidig.
hvis det er dit problem eller hvis du tror det kan hjælpe dig
vil jeg godt skrive et eksempel.


Lige nu for jeg et udtræk vha. en DataAdapter, problemet er at opsætningen af primærnøglefeltet som auto_increment felt ikke følger med. Dette løser jeg lige for tiden ved at "scope" den næste autoincrement værdi og sætte increment_seed lig med den, og increment_step sætter jeg til 1. Problemet er at jeg ville mene at det skulle følge med i mit DataSet allerede når jeg laver udtrækket?

Problemet er faktisk at jeg skal indsætte nye værdier i en DataTable i hukommelsen som har samme schema som tabellen i databasen. Og det er først senere at jeg skal gemme disse data i selve databasen, hvilket naturligvis foregår ved at opdatere DataAdapteren med DataSettet


---
Simon



User
Bruger #464 @ 23.05.05 22:09
Prøv at lad os se noget kode.



Hehe nu er problemet blevet løst man benytter bare SqlDataAdapter.FillSchema og så spiller det herligt!
---
Simon


[Redigeret d. 30/05-05 15:43:55 af Simon Merlung]



t