Update set where 语句有错误,提醒字符串格式不正确
C# code
string id = Request.QueryString["MessageID"];
if (id != "")
{
[color=#FF0000]string StrSql = "update tb_Message set UserName='" + Session["UserName"].ToString() + "',HF_Content='" + this.FCKeditor1.Value + "',HF_IP='" + Request.UserHostAddress.ToString() + "',HF_Time='" + DateTime.Now.ToString() + "' where MessageID=" + int.Parse(Page.Request["MessageID"].ToString()) ;[/color]
dbObj.ExecNonQuery(StrSql);
Response.Write("<script>alert('回复成功!')</script>");
Response.Redirect("MessageBoard.aspx");
}
else
{
Response.Redirect("MessageBoard.aspx");
}
在if语句之前设了断点,执行if条件时是跳到了string StrSql ,是否代表if条件不为空,那为什么执行出来,显示string StrSql 取到的数据为空呢?
------解决方案--------------------你调试StrSql 看看是什么?正不正确?也许后面的 Session["UserName"].ToString()为空?或者this.FCKeditor1.Value格式不对?
------解决方案--------------------如果是StrSql为null检查:this.FCKeditor1.Value 是不是空;
如果是查询结果为空,将StrSql查出来的语句放进查询分析器中去执行
------解决方案--------------------string id = Request.QueryString["MessageID"];
if (id != "")
{
string StrSql = "update tb_Message set UserName='" + Session["UserName"].ToString() + "',HF_Content='" + this.FCKeditor1.Value + "',HF_IP='" + Request.UserHostAddress.ToString() + "',HF_Time='" + DateTime.Now.ToString() + "' where MessageID=" + int.Parse(Page.Request["MessageID"].ToString()) ;
//这里输出SQL看看是什么
Response.Write(StrSql);
//dbObj.ExecNonQuery(StrSql);
//Response.Write("<script>alert('回复成功!')</script>");
//Response.Redirect("MessageBoard.aspx");
}
else
{
Response.Redirect("MessageBoard.aspx");
}
------解决方案--------------------
------解决方案--------------------string StrSql = "update tb_Message set [UserName]='" + Session["UserName"].ToString() + "' where MessageID=" + int.Parse(Page.Request["MessageID"].ToString().Trim()) ;
这样不就可以看字段UserName格式正不正确?当然你要保证Page.Request["MessageID"].ToString().Trim()这个是字符串类型数字
------解决方案--------------------实在不行,将这些参数先一个个赋给变量,再使用变量。。调试的时候看看每个变量有什么异常没