当前位置:首页 > 数据库 > SQlite

使用C#从sqlite 3数据库检索存储在整数字段中的字符串数据

我有一个带几个表的sqlite3数据库.其中一个具有两个字段:s_id和user_id,第一个是整数,第二个是整数主键.
我可以使用SQLite数据浏览器查看表内容,表中有两行.

user_id的值为1和2.

s_id值是字符串(例如“ user1”和“ user2”),而sqlite数据浏览器显示这些字符串.

我正在尝试使用System.Data.SQLite和C#中的以下代码检索信息:

using (SQLiteConnection connection = new SQLiteConnection(string.Format(@"Data Source={0};Legacy Format=True;", path)))
{
  connection.Open();
  using (SQLiteCommand command = new SQLiteCommand("SELECT * FROM users", connection))
  {
    using (SQLiteDataReader reader = command.ExecuteReader())
    {
      while (reader.Read())
      {
       string user = reader["s_id"].ToString();
      }
    }
  }
}

我搜索了互联网,发现sqlite可以在int字段中存储字符串数据.但是我无法使用C#读取这些字符串.结果始终为“ 0”.即使我在Watch中扩展阅读器,直到能够看到对象,该值也为0. (与user_id对应的第二个对象具有应具有的值1或2).

您知道如何在C#中检索此整数字段中的字符串值吗?

谢谢.

解决方法:

首先,第一件事:如果要将TypeX存储在数据库列中,请勿仅仅因为可以就将其声明为TypeY.对于技术独立性(如您所见),仅存储适当类型的值(就sqlite而言)是必不可少的.

如果由于某种奇怪的原因而无法更改数据库本身,则应在查询中强制转换值,如下所示:

SELECT CAST(s_id AS VARCHAR(255)) AS s_id FROM users;

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!