通过Reader读取整数值。(Sql-server)

时间:2014-05-24 22:31:27

标签: c# sql sql-server

con.Open();
cmd = new SqlCommand("USE PRODUCTS SELECT BOUGHT FROM " +
                     DropDownList1.SelectedItem.Text +
                     " WHERE ID = @ID", con);
cmd.Parameters.Add("ID", SqlDbType.Int).Value = DropDownList2.SelectedIndex;
int i = cmd.ExecuteReader().GetInt32(0);
con.Close();

我无法像这样阅读读者的整数值。我得到运行时错误System.InvalidOperationException。我的代码出了什么问题?如果你找不到错误,你能解释一下如何用读者读取整数值?顺便说一下,这部分代码给出了错误:

int i = cmd.ExecuteReader().GetInt32(0);

3 个答案:

答案 0 :(得分:1)

试试这个:

int x=0;
using (
SqlConnection connection = new SqlConnection(strCon))
{
    SqlCommand command = new SqlCommand(sql_string, connection);
    connection.Open();
    DataReader reader = command.ExecuteReader();
    if (reader.HasRows)
    {
        while (reader.Read())
        {
            x = reader.GetInt32(0);
        }
    } 

    reader.Close();
}

答案 1 :(得分:0)

您需要初始化阅读器然后阅读

using (SqlDataReader rdr = cmd.ExecuteReader())
{
  while (rdr.Read()) // or just rdr.Read() if you know only one row is returned
  {
    int i = rdr.GetInt32(0);

答案 2 :(得分:0)

由于我主要使用SQL,所以我已经做了很多事情来使事情变得更容易,因为我做了一些扩展。

例如

public static Int32 GetInt32(this SqlDataReader rdr, string column)
{
     return Convert.ToInt32(rdr[column]);
}