System.Data.SqliteのExecuteScalar()の返り値(続き→間違い)

sqlitec#の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で受けれないことが判明。前回は受けれたはずなのに。すいません。