我有一个简单的SQLite表:
CREATE TABLE "Phones" ("Id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , ... , "Type" CHAR(1) NOT NULL )
然而,当我尝试检索值时,除了“类型”之外,所有内容都按预期出现。 “类型”始终为NULL。
这是C#代码:
var phoneType = reader.GetChar(reader.GetOrdinal("Type"))
但是,如果我使用GetString代替GetChar,它可以按预期工作:
var phoneType = reader.GetString(reader.GetOrdinal("Type"))[0]
当我使用GetChar()时,显而易见的问题是我做错了什么?
答案 0 :(得分:1)
不进行转换;因此,检索到的数据必须已经是角色或对角色具有强制性。
CHAR(1)
不是单个字符,它是一个包含单个字符的字符串。
(请注意,在SQLite中,字符始终是字符串的一部分;使用CHAR
would behave the same类型。)