SQLite GetChar返回null

时间:2013-12-07 23:00:47

标签: c# sqlite

我有一个简单的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()时,显而易见的问题是我做错了什么?

1 个答案:

答案 0 :(得分:1)

documentation说:

  

不进行转换;因此,检索到的数据必须已经是角色或对角色具有强制性。

CHAR(1)不是单个字符,它是一个包含单个字符的字符串。

(请注意,在SQLite中,字符始终是字符串的一部分;使用CHAR would behave the same类型。)