Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在获取access中的最后一个自动编号_C# - Fatal编程技术网

C# 正在获取access中的最后一个自动编号

C# 正在获取access中的最后一个自动编号,c#,C#,我正在尝试在将记录插入access数据库后获取最后一个自动编号。我的分数是零。不知道我做错了什么。我试着用谷歌搜索,但找不到任何简单的例子,我可以用它来理解 // Database was opened before. cmd.ExecuteNonQuery(); // Insert is working fine. cmd = new OleDbCommand("SELECT @@IDENTITY", con); id = cmd.ExecuteNonQuery(); // id shows

我正在尝试在将记录插入access数据库后获取最后一个自动编号。我的分数是零。不知道我做错了什么。我试着用谷歌搜索,但找不到任何简单的例子,我可以用它来理解

// Database was opened before.
cmd.ExecuteNonQuery(); // Insert is working fine.
cmd = new OleDbCommand("SELECT @@IDENTITY", con);
id = cmd.ExecuteNonQuery(); // id shows zero in debug
见:

用于执行目录类型操作(创建/删除对象等)和
update/insert/delete
操作(注意
select
不在该列表中)

对于
update/insert/delete
,它返回受影响的行数

如果要从数据库中选择某个内容,则需要获得一个结果集,以查看它返回的内容(例如,请参阅)

另外,您还可以执行命令并返回第一行的第一列,这似乎就是您在这里要查找的内容

如果DAO使用

如果ADO使用


cn作为一个有效的ADO连接,@@Identity将返回最后一个在此连接上插入的标识(自动编号)。

搜索-给您-它使用
ExecuteScalar
而不是
ExecuteOnQuery
(它返回受影响的行数,而不是结果).1
ExecuteScalar
是MSDN推荐的获取值的方法。感谢您的帮助。对于像我这样的人,语法是id=Convert.ToInt32(cmd.ExecuteScalar());
cn.Execute "INSERT INTO TheTable.....", , cmd+ adExecuteNoRecords
Set rs = cn.Execute("SELECT @@Identity", , cmd)
RS.Move 0, RS.LastModified
lngID = RS!AutoNumberFieldName
cn.Execute "INSERT INTO TheTable.....", , adCmdText + adExecuteNoRecords
Set rs = cn.Execute("SELECT @@Identity", , adCmdText)
Debug.Print rs.Fields(0).Value