如何在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();
}
}
我很生气!!!!
答案 0 :(得分:5)
除非有明显的原因,否则应使用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#非常接近。
答案 1 :(得分:1)
您可以将SQL用于此目的
select max(id) from tablename
答案 2 :(得分:1)
建议在查询中而不是在代码中执行此操作。
查询可能是
Select Max(ColName) From TableName;
答案 3 :(得分:1)
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();