C# 如何将数字字符串读取为sqlite表中的字符串

C# 如何将数字字符串读取为sqlite表中的字符串,c#,sqlite,asp.net-core,C#,Sqlite,Asp.net Core,我正在我的asp.net Core 3应用程序中使用System.Data.SQLite.Core nuget包 我的表中有一个SQLite DB,假设如下: +-----+------------+-----+ | ... | Phone | ... | +-----+------------+-----+ | --- | 0123456789 | --- | +-----+------------+-----+ | --- | 9876543210 | --- | +-----+-

我正在我的asp.net Core 3应用程序中使用System.Data.SQLite.Core nuget包

我的表中有一个SQLite DB,假设如下:

+-----+------------+-----+
| ... | Phone      | ... |
+-----+------------+-----+
| --- | 0123456789 | --- |
+-----+------------+-----+
| --- | 9876543210 | --- |
+-----+------------+-----+
我做一个简单的查询

command = new SQLiteCommand("SELECT * FROM Table", connection);

var reader = await command.ExecuteReaderAsync();
并在我的阅读器中获取数据。 但是,当我尝试在对象中保留值时,我可以读取并将每个值转换为它的类型,但是我不能将phone值转换为字符串(我已在数据库中将其声明为字符串),我的意思是我可以使用显式转换来转换它

var p = reader[index2];
var t = p.GetType().Name; //--> String
var myobj = new MyObj(othervalues: reader.GetString(index1), phone: (string)reader[index2]);
这是可行的,但为什么我不能这么做呢

... phone: reader.GetString(index2)...
有办法做到这一点吗

谢谢你的回答

更新:


因此,显然将列定义从
STRING
更改为
TEXT
似乎可以使用
reader.GetString(index)
并允许存储电话号码,如
'000000000 1'
,而不删除零。

好的,但如果需要这样做怎么办?myObject(guid id、字符串名称、字符串电话、int count)可能该列是可空的,并且它无法获取具有空值的特定记录。但是电话不是数字。。。如果我像
'0215556545'
那样存储smt,那么当我使用
GetInt64(index)
读取它时,我将得到
2155556545
@AndréSanson,没有空值很高兴您找到了解决方案。感谢您的帮助