c# 将 access 数据库的最高 id 分配给变量

c# assign the highest id of an access database to a variable

我 100% 相信我要描述的问题总有一天会得到答案。但我还不够聪明,无法在 Whosebug 中找到它。所以,不好意思大家再问一次。但是如果你有一个 link 给 post 的那个解决了那个问题的人,我会接受它!

这是我目前正在努力处理的一段 C# 代码:

OleDbConnection cnx = new OleDbConnection(@"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\MyAccessDB.accdb");

string strReq = "SELECT ISNULL(MAX(CAST(FIELD_ID as Int)),0) + 1 FROM TBL_TABLE";
cnx.Open();
OleDbCommand cmd = new OleDbCommand(strReq, cnx);
OleDbDataReader dr = cmd.ExecuteReader();

if (dr.Read())
{
   int intId = (int)dr["FIELD_ID"];
}

cmd.Dispose();
cnx.Close();

那段代码应该将最大值 + 1 分配给访问 table TBL_TABLE 的 FIELD_ID。但是我在第 5 行有问题!!!我真的没主意了...有人可以帮忙吗?

再次感谢 Alex K 和 Nikki9696,这是有效的代码:

OleDbConnection cnx = new OleDbConnection(@"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\MyAccessDB.accdb");
string strReq = "SELECT MAX(FIELD_ID) AS ID FROM TBL_TABLE";
cnx.Open();
OleDbCommand cmd = new OleDbCommand(strReq, cnx);
OleDbDataReader dr = cmd.ExecuteReader();

if (dr.Read())
{
    int intId = (int)dr["ID"];
}

cmd.Dispose();
cnx.Close();