作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在用 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();
我在文本框上显示。
但是当表中的最后一行被删除时,我仍然得到最近在文本框中删除的值
我应该如何获取下一个自增值?
最佳答案
从 SQLServer 获取下一个自动增量值:
这将获取当前的自动增量值。
SELECT IDENT_CURRENT('table_name');
下一个自动增量值。
SELECT IDENT_CURRENT('table_name')+1;
------> 即使您添加一行然后将其删除,这仍然有效,因为 IDENT_CURRENT 返回在任何 session 和任何范围内为特定表生成的最后一个标识值。
关于c# - 如何在sql中获取下一个自增值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11469062/
我是一名优秀的程序员,十分优秀!