C# 获取插入查询ado.net的标识规范

C# 获取插入查询ado.net的标识规范,c#,C#,我正在使用内联查询在表中插入记录。我必须使用输出参数获取Insert语句生成的标识,这就是我所做的 //Com.CommandText contains Insert Statment OleDbParameter IDParameter = new OleDbParameter("@ID", OleDbType.Integer); IDParameter.Direction = ParameterDirection.Output;

我正在使用内联查询在表中插入记录。我必须使用输出参数获取Insert语句生成的标识,这就是我所做的

//Com.CommandText contains Insert Statment
     OleDbParameter IDParameter = new OleDbParameter("@ID", OleDbType.Integer);
                    IDParameter.Direction = ParameterDirection.Output;
                    Com.Parameters.Add(IDParameter);
Com.ExecuteNonQuery();
在检查输出参数值时执行后,它显示为0,尽管记录插入正确 这就是我检查的方式

Com.Parameters[0].Value
我也试过这个

Com.Parameters["@ID"].Value
但输出参数值始终为0 我还尝试在Insert Station中使用Select Scope_Identity,但没有成功,
我也使用了ExecuteScalar,但仍然存在相同的问题

您的插入查询必须以

SELECT CAST(scope_identity() AS int)
然后ExecuteScaler将返回标识

int ID = (int)cmd.ExecuteScalar();

向我们展示Com.commandtext用户提到的使用ExecuteScaler的价值。我觉得这是更好的方法和标准实践。