2017-07-14 8 views
0

Ich habe eine Tabelle in meiner Datenbank verwendet, um zum Beispiel die Transaktionen zu speichern, diese Tabelle haben eine ID, die der Primärschlüssel und automatisch inkrementelle Status ist, so dass die ID von der Datenbank bei der Verwendung unten generiert wird Code: db.tblTransfers.Add(Transfer);Zeilennummer erhalten C#

Mein Code ist:

  tblTransfer Transfer = new tblTransfer 
     { 
      AccountID = int.Parse(_AID), 
      Amount = int.Parse(txtAmount.Text), 
      TransType = cmbType.Text, 
      CashType = cmbDetail.Text, 
      TransferDate = dateTimeSelector1.GetText("yyyy/MM/dd"), 
      Describtion = txtDetail.Text 
     }; 
     db.tblTransfers.Add(Transfer); 
     db.SaveChanges(); 

wie die ID für diese Zeile nach dieser Zeile erzeugt zu finden? Gibt es einen Befehl, um die Details der hinzugefügten Zeile zu bekommen, damit ich die ID bekommen kann?

PS) Die IDs-Sequenz kann Lücken in ihrer Reihenfolge in der Tabelle aufweisen, da einige Transaktionen im Programm vom Benutzer gelöscht wurden. so kann es nicht direkt von diesem Code erhalten helfen: db.tblTransfers.Count();

Dank im Voraus

+0

Count würde nicht funktionieren, würde eine Max-Funktion, vorausgesetzt, sie autoincrement. Es gibt möglicherweise auch eine Möglichkeit, Werte aus der betroffenen Zeile abzurufen. Welche DB benutzen Sie? –

+0

SQL Server Management Und mit System.Data.Entity; Ich bin neu in C# und hoffe, das hilft! – StudioX

+2

Wenn dies Entity Framework ist, wird die ID Ihres 'Transfer'-Objekts nicht nach dem Aufruf von' SaveChanges() 'aufgefüllt? – David

Antwort

-1

Normalerweise ist die erzeugte ID zu dem Objekt nach

db.SaveChanges(); 

aber wenn Sie die ID erraten müssen, bevor die Änderungen speichern Sie können das Maximum plus 1 anstelle der Zählung

db.tblTransfers.Max(x=> x.Id + 1) 
+0

Sicher .... es sei denn, jemand anderes fügt einen Datensatz vor dem Aufruf von SaveChanges hinzu. – Steve

+0

@Steve Sie sind absolut richtig, aber vielleicht muss er raten es oder dies für kleine Anwendung wie Testen oder etwas –

+0

gute Idee, aber wenn jemand das letzte Element gelöscht, nächste ID ist +2 von max und Fehler auftritt. – StudioX

Verwandte Themen