使用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();
    }
}

我很紧张!!!!

使用c#在MS access数据库中查找最高的数字

除非有明显的原因,否则您应该使用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();