C# SQLite将字符存储为字符串?

C# SQLite将字符存储为字符串?,c#,sqlite,C#,Sqlite,我正在使用System.Data.SQLite ADO.Net提供程序与SQLite DB交互。我使用以下语法创建了一个新表: CREATE TABLE [tb_Replace] ([Character] CHAR(1), [Substitute] CHAR(1)) 然后,我尝试使用一个简单的选择来读取数据: public static List<char> GetReplaceableCharacters(string connectionString) { List&l

我正在使用System.Data.SQLite ADO.Net提供程序与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;
}
公共静态列表GetReplacableCharacters(字符串连接字符串)
{
List replacablecharacters=新列表();
SQLiteConnection sqlConnection=新的SQLiteConnection(connectionString);
sqlConnection.Open();
使用(SQLiteTransaction=sqlConnection.BeginTransaction())
{
SQLiteCommand=newSQLITECommand(@“从tb_替换中选择字符”,sqlConnection);
SQLiteDataReader=command.ExecuteReader();
while(reader.Read())
可替换字符。添加((字符)读取器[“字符”]);
}
sqlConnection.Close();
返回可替换字符;
}
然而,当我这样做的时候,它抛出了一个无效的例外。但是,如果我将返回类型更改为
列表
,并将
读取器[“Character”]
转换为字符串,则可以正常工作。有人知道为什么会这样吗?

请阅读

Sqlite有五种类型亲缘关系(表的一列首选的类型)和五种存储类(可能的实际值类型)。它们之间没有
字符
类型


Sqlite允许您为列创建指定几乎任何类型。但除了
INTEGER主键
列之外,它并没有对所有列强制执行类型。它识别一些声明类型名称的子字符串来确定列类型亲缘关系,因此
字符
木炭
上下文化
都是编写
文本
的有趣方式,字符串是IEnumerable的,因此例如to可以声明如下`
List someChars=new List()
var someCharArray=“abcdefghijklmnopqrstuvxyz”.ToList()
然后将其应用到您的示例中,希望这能让您了解如何使用
列表
,如果您展示一个SQL Select语句返回内容的示例,这样我们就可以看到数据的样子了。谢谢