【问题标题】:How to retrieve an integer value from a database for use in an IF statement如何从数据库中检索整数值以用于 IF 语句
【发布时间】:2017-12-09 21:38:18
【问题描述】:

我正在尝试检测这些电影在数据库中的价格类别(类别 1、2 或 3),但我不知道如何读取这些值。

using (SQLiteCommand getPrice = new SQLiteCommand("select Category FROM Movies WHERE MovieID LIKE @id", conn))
{
    getPrice.Parameters.AddWithValue("@id", movieid);
    using (var CategoryReader = getPrice.ExecuteReader())
    {
        int category = CategoryReader.GetInt32(1);
        if (category==1)
        {
            MessageBox.Show("That is price category 1");
        }
    }
}

【问题讨论】:

  • 如果您逐行运行此代码,您可以看到每个变量的值。这应该对你有帮助。
  • 如果只有一个值,请使用ExecuteScalar 而不是ExexcuteReader。如果您使用的是 dataReader,则需要先调用它的 Read 方法,然后才能访问值。
  • 当您有时间时,还请阅读有关 Reader.HasRows 的信息,您可能还想使用您正在寻找的列的名称与 CategoryReader.GetInt32(1) 如果表结构发生变化和类别列索引已更改..?需要考虑的事情..
  • 只有一列的 GetInt32(1) 在任何情况下都会失败。

标签: c# sql sqlite


【解决方案1】:

GetInt32 的文档非常清楚地表明该参数是从零开始的序数。因此,当您只选择了一个数据时,您要求的是第二列数据。

【讨论】:

  • 这是正确的,更不用说OP的问题和方法有其他问题了..
猜你喜欢
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多