
c#のSystem.Data.Sqliteで検索結果から1つのスカラー値を獲得する時、ExecuteScalar()を使うが、テーブルの値はintでキャスト
できるない。count()とかmax()とかは
ぜんぶlong
(=System.Int64)でキャストする。
// テーブルの値もintで受けることができない <--- 修正
cmd.CommandText = “SELECT data FROM table”;
long x = (long)cmd.ExecuteScalar(); // <--- 修正
// 関数の戻り値は long で受けないと castエラー
cmd.CommandText = “SELECT MAX(data) FROM table”;
long x = (long)cmd.ExecuteScalar();
cmd.CommandText = “SELECT last_insert_rowid() FROM table”;
long y = (long)cmd.ExecuteScalar();
2014.6.25 修正。なぜかintで受けれないことが判明。前回は受けれたはずなのに。すいません。