Ich habe die Lösung unten verwendet, aber wenn ich eine bestimmte Zeile lösche, wird es die Nummer duplizieren.autogenerate Nummer aus der Datenbank in C#
Code:
void AutoGenerateId()
{
SqlConnection cn = new SqlConnection(ConString);
string Query = "select COUNT(*) from StudentDetails";
SqlCommand cd = new SqlCommand(Query, cn);
try
{
cn.Open();
int count = Convert.ToInt16(cd.ExecuteScalar()) + 1;
txtStudentId.Text = count.ToString();
txtStudentId.Enabled = false;
}
catch (Exception ex)
{
lblErrorMsg.Text = ex.ToString();
}
finally
{
cn.Close();
}
}
Ich habe nicht die geringste Ahnung, was Sie fragen ... – Siyual
Ich _think_ Ich bekomme, was Sie fragen, irgendwie. Verwenden Sie SELECT IDENT_CURRENT (StudentDetails + 1) anstatt zu zählen, wenn Sie versuchen, den (potenziellen) nächsten Inkrementwert zu erhalten. Ich sage Potenzial, weil es sich ändern könnte, bevor Sie sich verpflichten. Sie benötigen auch eine Identity-Spalte, andernfalls verwenden Sie MAX (Id), wenn nicht IDENTITY (sollte es sein). –
oder verwenden Sie einfach ID INT IDENTITY (1,1) – Steve