日期:2014-05-17  浏览次数:20432 次

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 id = Request.QueryString["MessageID"];
if (id != "")
{
string StrSql = "update tb_Message set UserName='" + Session["UserName"].ToString() + "',HF_……

------解决方案--------------------
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()这个是字符串类型数字
------解决方案--------------------
实在不行,将这些参数先一个个赋给变量,再使用变量。。调试的时候看看每个变量有什么异常没