Sætte id for objekt lige efter dets data er gemt i SQL DB.
Hejsa.Jeg har et spørgsmål til mine objekter generelt.
Jeg har som regl en metode på mine objekter, som kan gemme alle data for objektet i en SQL Database. I denne database er der et Id felt som er unikt. Det bruger jeg som Id feltet på objekter.
F.eks. som herunder :
public class bruger
{
private int _Id;
private string _Name;
public int Id
{
get { return _Id; }
set { _Id = value; }
}
public int Name
{
get { return _Name; }
set { _Name = value; }
}
public void Commit()
{
string query = "";
if Id > 0
query = "update tbusers set name = ..... where id = " + Id;
else
query = "insert into tbusers (name) values (.......)";
osv osv...
}
Problemet opstår når jeg har lavet en ny reference af et objekt som jeg så gemmer, men skal fortsætte med at bruge.
F.eks. :
bruger b1 = new bruger();
b1.name = "Lasse";
b1.commit();
Her vil der blive tilføjet en ny record i min database.
Men hvordan får jeg så sat mit Id for objektet. Der bliver jo ikke retuneret noget fra sql'en som fortælle mig hvilket id nummer der blev givet til den nye record.
Jeg har indtil nu haft en metode som selecter max(Id) fra tabellen, men den er for usikker, for hvad nu hvis der lige netop i det sekund der går mellem jeg gemmer og selecter max(Id) bliver oprettet en anden bruger et andet sted fra.
Hvad gør man her? Kan man få sql'en til at retunere hvilket id nummber den har givet eller griber jeg dette helt forkert an?
Mvh.
Lasse