【发布时间】:2014-11-11 15:54:06
【问题描述】:
我一直在尝试找到解决此问题的方法,但到目前为止没有任何效果。
private void Insert()
{
string ConnectionStringAccess = Provider=Microsoft.ACE.OLEDB.12.0;Data Source=###Jet OLEDB:Database Password=###;
string query2 = "Select @@Identity";
int id = -1;
string Query = "INSERT INTO tblTable (EmpNo, Name) VALUES (132, 'TestName');";
OleDbConnection con = new OleDbConnection(ConnectionStringAccess);
OleDbCommand cmd = new OleDbCommand(Query, con);
try
{
con.Open();
if (cmd.ExecuteNonQuery() == 1)//the insert succeded
{
cmd.CommandText = query2;
id = Convert.ToInt32(cmd.ExecuteScalar());
}
}
catch (Exception ex)
{
//log the ex
}
finally
{
con.Dispose();
con.Close();
}
}
每次我使用上述方法时,“id”总是返回 0。我究竟做错了什么?我尝试使用不同的连接字符串或其他方式来获取最新的标识符:
- Provider=Microsoft.Jet.OLEDB.4.0;
- SCOPE_IDENTITY()
但又没有。 Access db 是 2003 或更早版本(不确定)。
【问题讨论】:
标签: c# asp.net ms-access ado.net oledb