1

私は SQLite C# ライブラリを使用しており、私の要件に従って、追加する前にそのテーブルの行 ID を取得しています。正常に動作していますが、テーブルが空の場合はエラーが発生します。データ (行) を追加すると、正常に動作します。

        mDbCon  = GetConnection();
        SQLiteCommand cmd = mDbCon.CreateCommand();
        cmd.CommandText = " SELECT MAX(rowid) FROM " + “MYTABLE”;
        cmd.CommandType = CommandType.Text;
        mDbCon.Open();
        SQLiteDataReader sqReader = cmd.ExecuteReader();
        while (sqReader.Read())
        {
            if ( sqReader.IsDBNull(0) )
            {
                max = (Int32)sqReader.GetInt32(0);
            }
        }
        mDbCon.Close();

テーブル「MYTABLE」にデータがない場合、例外がスローされます。

4

2 に答える 2

2

これはうまくいくはずです。

SELECT IFNULL(MAX(RowId), 1) AS Id FROM MYTABLE
于 2010-04-01T06:05:09.327 に答える
1

試すint maxRowID = Convert.Int32(cmd.ExecuteScalar());

于 2010-04-01T06:25:30.027 に答える