sid*_*rth 12 c# sql sql-server sql-server-2000 winforms
我正在c#中创建一个winform应用程序并使用sql数据库.
我有一个表,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();
Run Code Online (Sandbox Code Playgroud)
我在textBox上显示.
但是当删除表中的最后一行时,我仍然得到最近在文本框中删除的值
我该如何获得下一个自动增量值?
pat*_*anb 22
要从SQLServer获取下一个自动增量值:
这将获取当前的自动增量值.
SELECT IDENT_CURRENT('table_name');
Run Code Online (Sandbox Code Playgroud)
下一个自动递增值.
SELECT IDENT_CURRENT('table_name')+1;
Run Code Online (Sandbox Code Playgroud)
------>即使你添加一行然后删除它也会有效,因为IDENT_CURRENT返回在任何会话和任何范围内为特定表生成的最后一个标识值.
试试这个:
SELECT IDENT_CURRENT('tbl_name') + IDENT_INCR('tbl_name');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47802 次 |
| 最近记录: |