当前位置: 代码迷 >> ASP.NET >> 急 sql语句错了?解决思路
  详细解决方案

急 sql语句错了?解决思路

热度:7383   发布时间:2013-02-25 00:00:00.0
急急急急急急急急急急急 sql语句错了?
C# code
 string updatacmd = "update g_user set name='" + txt_name.Text + "',card='" + txt_card.Text + "',riqi='" + txt_money.Text + "',gtel='" + txt_gtel.Text + "',tel='" + txt_tel.Text + "',email='" + txt_email.Text + "',youbian='" + txt_youbian.Text + "',address='" + txt_add.Text + "',sex='" + txt_sex.Text + "',danbaoren='" + txt_danbaoren.Text + "', job='" + txt_joy.Text + "' where id='" + txt_serch.Text + "'";


------解决方案--------------------------------------------------------
都是什么类型的啊
------解决方案--------------------------------------------------------
数据库的字段类型可能和现在的所有输入类型不匹配的原因吧,你可以把输入的值,定义成变量,转化类型后再写入SQL语句.
------解决方案--------------------------------------------------------
trim 一下 先
------解决方案--------------------------------------------------------
断点一下,调试一下

什么问题都看见了
------解决方案--------------------------------------------------------
name='" + txt_name.Text + "',card='" + txt_card.Text + "' 你把语句的,号去掉试下看看
------解决方案--------------------------------------------------------
估计又是这个问题
Page_Load里你给控件赋值的地方放在
if(!IsPostBack)
{
txt_name.Text =....
.....
}
------解决方案--------------------------------------------------------
用参数去做吧,看到字符串中有单双引号就头晕,出错就难免了。
------解决方案--------------------------------------------------------
报什么错啊

------解决方案--------------------------------------------------------
或者你可以把修改的代码放到数据库里面写上一些数据进行调试看看能不能修改成功,如果能 那么你就看下面的语句是那错了,如过不能你的SQL语句写错了
------解决方案--------------------------------------------------------
C# code
public bool getupdata()    {        bool flag = false;        SqlConnection conn = null;        dbcon db = new dbcon();        string updatacmd = "update g_user set name='" + txt_name.Text + "',card='" + txt_card.Text + "',riqi='" + txt_money.Text + "',gtel='" + txt_gtel.Text + "',tel='" + txt_tel.Text + "',email='" + txt_email.Text + "',youbian='" + txt_youbian.Text + "',address='" + txt_add.Text + "',sex='" + txt_sex.Text + "',danbaoren='" + txt_danbaoren.Text + "', job='" + txt_joy.Text + "' where id='" + txt_serch.Text + "'";        try        {            conn = db.getcon();            conn.Open();            SqlCommand cmd = new SqlCommand();            cmd.CommandText = updatacmd;            cmd.Connection = conn;            cmd.ExecuteNonQuery();            return true;        }        catch { return false;}       finally{           conn.Close();        }        return flag;    }    protected void btn_tj_Click(object sender, EventArgs e)    {        if (getupdata())        {            Response.Write("<script>alert('修改成功!')</script>");            Response.Redirect("admin_.aspx");                   }        else            lab_message.Text = "修改失败!!!";             }
------解决方案--------------------------------------------------------
是报错还是更新不成功,你把语句打印处理看看。
sql语法上没有错误啊。
只要不是int等类型,即使更新为''也不会有问题。
如果是更新不成功,会不会是主键txt_serch没有值。 where id='" + txt_serch.Text + "'
  相关解决方案