2016-09-23 4 views
0

Die ID wird um 1 erhöht, z. B. 00001. Aber jedes Mal, wenn ich neue Daten einfüge, wird das Inkrement neu gestartet. Ich möchte, dass es vom letzten Schritt fortgeht.Inkrement der ID

Abfrage

string GetMaxIdSql = 
@"select isnull(Max(convert(int, ApplicationId)),0) as ApplicationId, isnull(Max(convert(int, Id)),0) as Id from Application where isnumeric(id) = 1 and isnumeric(applicationid) = 1"; 

Befehl

resultMaxId.Id = (Convert.ToInt32(resultMaxId.Id) + 1).ToString();   
string id = string.Format("{0}", resultMaxId.Id.ToString().PadLeft(6, '0')); 
+0

Es ist wahrscheinlich dumm zu fragen, aber sind Sie sicher, dass Ihre 'ApplicationId'- und' Id'-Spalten in der Datenbanktabelle 'int' sind und nicht' varchar', oder sie nicht nicht konvertierbare Werte (Strings die Sie haben) kann nicht in int konvertiert werden). –

+0

Es kann sein, dass diese Spalten alphanumerisch sind und versuchen, sie in "int" zu konvertieren. –

+2

Wenn Sie Junk-Daten in Ihrer Tabelle haben (wo IDs oder ApplicationIDs nicht konvertiert werden können, weil sie Buchstaben oder andere Zeichen enthalten, die keine Zahlen sind), wird ein Fehler ausgegeben. Sie könnten die Abfrage so ändern, dass sie Folgendes enthält: where isnumeric (id) = 1 und isnumeric (applicationid) = 1, aber realistisch sollten Sie Ihre Daten korrigieren. – ZLK

Antwort

0

Bitte überprüfen Sie die vollständigen Daten in ApplicationId und Id-Spalten. Es kann einige Zeichen geben, die dieses Problem verursachen.

Verwandte Themen