关于查询数据库的问题

来源:百度知道 编辑:UC知道 时间:2024/09/25 22:29:35
现在想根据编号然后把详细信息显示出来,编号由前一个页面中选择后,采用页面传递参数的方法给出来了,数据库中有数据,字段分别是“编号”、“名称”、“位置”,但是运行的时候报错,不知道是怎么回事啊?初步推断是连接数据库的问题,我感觉问题最有可能是出在DataReader上面,这个我不是很会用,高手给点提示
public string ByID;
protected void Page_Load(object sender, EventArgs e)
{
ByID=Request.QueryString["ID"];
Label1.Text = ByID;

SqlConnection Conn = new SqlConnection();
Conn.ConnectionString = "server=localhost;database=测试用;uid=sa;pwd=";
Conn.Open();//建立连接
SqlCommand Comm = new SqlCommand("", Conn);
Comm.CommandText="SELECT * FROM ImageAddress WHERE 编号='"+Label1.Text+"'";

SqlDataReader dr;
dr = Comm.ExecuteReader();
//Label2.Text = dr["名称"].ToString();
Label2.Text = dr[1].ToString();
Image1.ImageUrl = dr["位置"].ToString();
dr.Close();
Conn.Close();<

SQLDataReader 不是这么用的,应该这么用:
SqlDataReader dr;
dr = Comm.ExecuteReader();
//Label2.Text = dr["名称"].ToString();
while(dr.Read())
{
Label2.Text = dr[1].ToString();
Image1.ImageUrl = dr["位置"].ToString();
}

具体报了什么错误信息?

你的处理方式有问题哦,没有过滤串入的参数,小心SQL注入,也没有做传入参数为空或者数据库中找不到指定参数时,SqlDataReader 中取不到数据的try catch ...

哈,你加个断点在Label2.Text = dr[1].ToString();这一行,然后看看dr里有数据没有....

1SqlConnection
2SqlCommand
3Conn.open
4dr,如果数据为空,可就错了
5操作
6dr.close
7Conn.close

加一句
dr.Read();

你没有这一句,dr就不读库,,当然没有数据啦.