我想获得最大数量
所以我做了这段代码
public int autoIncrement()
{
int no = 0;
odbcCon.OpenCon();
SqlCommand cmd = new SqlCommand("SELECT MAX (CustomerCode) FROM TBLM_CUSTOMER",odbcCon.MainCon);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
if (!dr.IsDBNull(0)) {
no = Convert.ToInt32(dr);
}
}
dr.Close();
return no;
}
但是
no = Convert.ToInt32(dr);
说
无法将“System.Data.SqlClient.SqlDataReader”类型的对象强制转换为“System.IConvertible”。
我该如何解决这个问题?请告诉我
答案 0 :(得分:2)
您正在尝试将数据读取器转换为整数。
请改为尝试:
if (!dr.IsDBNull(0)) {
no = dr.GetInt32(0);
}
答案 1 :(得分:2)
您需要为0
:
DataReader
no = Convert.ToInt32(dr[0]);
答案 2 :(得分:0)
您需要提供索引:
no = Convert.ToInt32(dr[0]);
答案 3 :(得分:0)
尝试获取GetSqlInt32属性
no = dr.GetSqlInt32(0);