【发布时间】:2015-08-05 04:44:38
【问题描述】:
我正在使用 System.Data.SQLite ADO.Net Provider 与 SQLite DB 进行交互。我使用以下语法创建了一个新表:
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。但是,如果我将返回类型更改为 aList<string> 并将 reader["Character"] 转换为字符串,它就可以工作。有谁知道为什么会这样?
【问题讨论】:
-
Taylor
Well, string is IEnumerable<char>例如可以声明如下内容`List<char> someChars = new List<char>();var someCharArray = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToList();然后将其应用于您的示例希望这可以让您了解如何使用List<char>如果您显示 SQL Select 语句返回的示例可能会有所帮助,以便我们可以看到数据的样子..谢谢