如何在ASP.NET中使用数据读取器

时间:2014-10-25 11:34:10

标签: c# ado.net

我正在学习为我的程序使用select查询。

这是我的代码。

con.Open();

SqlCommand cmd = new SqlCommand("select id from qw where name='" + TextBox1.Text + "'", con);
SqlDataReader dr = SqlDataReader();
dr = cmd.ExecuteReader();
dr.read();
TextBox2.Text = dr[0].Tostring();
dr.close();
con.Close();

显示此错误消息

'System.Data.SqlClient.SqlDataReader'是'type',但用作'变量'

1 个答案:

答案 0 :(得分:3)

这是与您上面匹配的正确代码

using(SqlConnection con = new SqlConnection(.......))
using(SqlCommand cmd = new SqlCommand("select id from qw where name=@name", con))
{
    con.Open();
    cmd.Parameters.AddWithValue("@name", TextBox1.Text);
    using(SqlDataReader dr = cmd.ExecuteReader())
    {
       if(dr.read())
       {
           TextBox2.Text = dr[0].ToString();
       }
    }
}
事情发生了变化:

  • 在一次性物品周围使用using statement(所以它们是 在不再需要的情况下处理和关闭 例外)
  • 使用参数化查询而不是字符串连接(read about Sql Injection
  • 让读者执行您的命令的ExecuteReader方法
  • 检查读者是否返回