System.Data.SQLiteADO.Netプロバイダーを使用してSQLiteDBと対話しています。次の構文を使用して、新しいテーブルを作成しました。
CREATE TABLE [tb_Replace] ([Character] CHAR(1), [Substitute] CHAR(1))
次に、単純な選択を使用してデータを読み取ろうとしました。
public static List<char> GetReplaceableCharacters(string connectionString)
{
List<char> replaceableCharacters = new List<char>();
SQLiteConnection sqlConnection = new SQLiteConnection(connectionString);
sqlConnection.Open();
using (SQLiteTransaction transaction = sqlConnection.BeginTransaction())
{
SQLiteCommand command = new SQLiteCommand(@"SELECT Character FROM tb_Replace", sqlConnection);
SQLiteDataReader reader = command.ExecuteReader();
while (reader.Read())
replaceableCharacters.Add((char)reader["Character"]);
}
sqlConnection.Close();
return replaceableCharacters;
}
しかし、私がそれをしたとき、それはInvalidCastExceptionをスローしました。ただし、戻りタイプをaに変更して文字列にList<string>
キャストすると、機能します。reader["Character"]
なぜこれが起こるのか誰かが知っていますか?