注册 登录
编程论坛 ASP.NET技术论坛

[求助]我的代码这样写有错吗

airfei 发布于 2007-04-25 16:41, 450 次点击

我的这段代码,如果
private void InitPage()
{
string ImgID = Request.QueryString["ImgID"].ToString();
SqlConnection con = DB.CreateDB();
con.Open();
SqlCommand cmd = new SqlCommand("select * from ImgNews2 where ImgID='"+ImgID+"'", con);
//如果我在这里注释掉string ImgID = Request.QueryString["ImgID"].ToString();然后把变量ImgID随便赋个3都能正常.

SqlDataReader sdr = cmd.ExecuteReader(); //就是这里报错,说是用户代码未处理,SQL异常.
while (sdr.Read())
{
this.Label1.Text = sdr.GetString(2);
this.Image1.ImageUrl = sdr.GetString(1);
this.Label2.Text = sdr.GetString(3);
}
sdr.Close();
con.Close();

}
就是我传值后发生上述错误.请大家指点一下.谢谢大家

4 回复
#2
bygg2007-04-25 17:26

你的另一个页面是怎么传过来的??

#3
airfei2007-04-25 17:58
回复:(airfei)[求助]我的代码这样写有错吗
protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{
string ImgPath = ((ImageButton)this.GridView3.Rows[0].FindControl("ImageButton2")).ImageUrl;
SqlConnection con = DB.CreateDB();
con.Open();
SqlCommand cmd = new SqlCommand("select ImgID from ImgNews2 where ImgPath ='"+ImgPath+"'", con);
string ImgID = Convert.ToString(cmd.ExecuteScalar());
Response.Redirect("ImgNews.aspx?ImgID='"+ImgID+"'");
}
#4
airfei2007-04-25 21:26
帮我看看,谢谢.

这是我传值的代码
protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
{
string ImgPath = ((ImageButton)this.GridView3.Rows[0].FindControl("ImageButton2")).ImageUrl;
SqlConnection con = DB.CreateDB();
con.Open();
SqlCommand cmd = new SqlCommand("select ImgID from ImgNews2 where ImgPath ='"+ImgPath+"'", con);
string ImgID = Convert.ToString(cmd.ExecuteScalar());
Response.Redirect("ImgNews.aspx?ImgID='"+ImgID+"'");
}
错误是说:
SqlDataReader sdr = cmd.ExecuteReader();
第 1 行: '3' 附近有语法错误。

我调试的时候,
private void InitPage()
{
string ImgID = Request.QueryString["ImgID"].ToString();
//比如我取得的ImgID=1,如果在这里我用Response.Write(ImgID); 网页上就显示'1'
我想可能是这个1的问题,大家帮我看看是不是传值的问题.
我在SQL数据库中ImgID是int类型

#5
airfei2007-04-25 21:50

问题解决了,谢谢大家

1