关于查询数据库的问题
来源:百度知道 编辑: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();<
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就不读库,,当然没有数据啦.