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);
答案 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]);
}