无法转换类型的对象

时间:2013-08-12 18:01:25

标签: c#

我想获得最大数量

所以我做了这段代码

 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”。

我该如何解决这个问题?请告诉我

4 个答案:

答案 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);