我正在用c#。创建一个Winform应用程序,并使用sql数据库。
我有一个表,employee_master其中有列,如Id, name, address和phone no。Id是自动递增,所有其他数据类型是varchar。
employee_master
Id, name, address
phone no
Id
varchar
我正在使用此代码来获取下一个自动增量值:
string s = "select max(id) as Id from Employee_Master"; SqlCommand cmd = new SqlCommand(s, obj.con); SqlDataReader dr = cmd.ExecuteReader(); dr.Read(); int i = Convert.ToInt16(dr["Id"].ToString()); txtId.Text = (i + 1).ToString();
我在textBox上显示。
但是,当删除表中的最后一行时,我仍然得到该值,该值最近在文本框中删除了
我应该如何获得下一个自动增量值?
要从SQLServer获取下一个自动增量值:
这将获取当前的自动增量值。
SELECT IDENT_CURRENT('table_name');
下一个自动增量值。
SELECT IDENT_CURRENT('table_name')+1;
------>即使您添加一行然后将其删除,这也将起作用,因为IDENT_CURRENT返回为任何会话和任何作用域中的特定表生成的最后一个标识值。