C# 获取插入查询ado.net的标识规范
我正在使用内联查询在表中插入记录。我必须使用输出参数获取Insert语句生成的标识,这就是我所做的C# 获取插入查询ado.net的标识规范,c#,C#,我正在使用内联查询在表中插入记录。我必须使用输出参数获取Insert语句生成的标识,这就是我所做的 //Com.CommandText contains Insert Statment OleDbParameter IDParameter = new OleDbParameter("@ID", OleDbType.Integer); IDParameter.Direction = ParameterDirection.Output;
//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的价值。我觉得这是更好的方法和标准实践。