1

最大数を取得したい

だから私はこのコードをやった

 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

4 に答える 4

2

データ リーダーを整数に変換しようとしています。

代わりにこれを試してください:

if (!dr.IsDBNull(0)) {
    no = dr.GetInt32(0);
}
于 2013-08-12T18:03:53.637 に答える
2

0のインデックスを指定する必要がありますDataReader:

no = Convert.ToInt32(dr[0]);
于 2013-08-12T18:03:58.043 に答える
0

GetSqlInt32 プロパティを取得してみてください

no = dr.GetSqlInt32(0);
于 2013-08-12T18:04:28.893 に答える