使用c#在MS access数据库中查找最高的数字
本文关键字:查找 数字 数据库 MS access 使用 | 更新日期: 2023-09-27 18:02:26
如何在MS访问表的特定列中找到最大的数字?我正在使用c#。
我搞不懂这个逻辑。我这样做:
int i, lastID;
int y = 0;
int lastRow = DS.Tables[0].Rows.Count;
for (i = 0; i > -1; i++)
{
i = Convert.ToInt32(DS.Tables[0].Rows[i]["id"].ToString());
lastID = (y > i) ? y : i;
if (i > lastRow)
{
lastID++;
empIdLabel.Text = lastID.ToString();
}
}
我很紧张!!!!
除非有明显的原因,否则您应该使用SQL: SELECT MAX(id) FROM . . .
。
您可以使用OLEDB连接:
OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=blahblah.mdb"));
connection.Open();
OleDbCommand maxCommand = new OleDbCommand("SELECT max(id) from TABLENAME", connection);
Int32 max = (Int32)maxCommand.ExecuteScalar();
请注意,我是在Linux机器上,所以我没有测试上面的,但它应该非常接近我对c#的记忆。
您可以使用SQL来实现此目的
select max(id) from tablename
建议在查询中而不是在代码中进行。
查询可以是
Select Max(ColName) From TableName;
String cs = @"Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=databasepath'databasename.mdb";
OleDbConnection con = new OleDbConnection(cs);
con.Open();
OleDbCommand com = new OleDbCommand("select Max(id) as ID from tablename",
con);
com.CommandType = CommandType.Text;
OleDbDataReader r = com.ExecuteReader();
r.Read();
if (r["ID"].ToString() != "")
{
temp = int.Parse(r["ID"].ToString()) + 1;
}
else
{
temp = 1;
}
textBox1.Text = temp.ToString();
r.Close();
con.Close();