Image.aspx 页面
protected void Page_Load(object sender,EventArgs e)
{
if(!IsPostBack)
{
string id=Request.QueryString["Id"].ToString();
SqlConnection con=new SqlConnection("server=PC-PC\\SQL2005;database=UUU1;User Id=sa;Password=sasa");
con.Open();
string strSql="select * from Customer where Id"+id;
SqlCommand com=new SqlCommand(strSql,con);
SqlDataReader dr=com.ExecuteReader();
if(dr.Read())
{
Response.BinaryWrite((byte[])dr["Image"]);
}
con.Close();
}
}
this.Image1.ImageUrl="Image.aspx?Id"+id
其中数据库中Image字段类型为Image,请问高手上边代码有什么问题?
SqlDataReader dr=com.ExecuteReader(); 使用的时候建议用
using(SqlDataReader dr=com.ExecuteReader();){
}
因为这个东西要手动关闭。用using会自动释放的。
还有就是楼上说过的string类型和int类型相加的问题
少了一个 = 等号
string strSql="select * from Customer where Id="+id;
this.Image1.ImageUrl="Image.aspx?Id="+id
string id=Request.QueryString["Id"].ToString();
最好转换成int型,要不然是字符的话,就出错了
this.Image1.ImageUrl="Image.aspx?Id"+id
这边也少了个“=”号
Request.QueryString["Id"].ToString() 改一种写法
Request["Id"].ToString()
最好是先判断下
if(Request["Id"]!=null)
{
id=Request["Id"].ToString();
}