用asp.net写了个web程序,需要对数据库进行更新(Update),但是老出这个错误,
更新代码如下:
protected void Button1_Click(object sender, EventArgs e)
    {
        string str_id="" + Request.QueryString["id"];
        string str_nami =this. NewNameInput.Text;
        string str_jinsi = this.JinsiInput.Text;
        string str_mezmuni = this.MeaningInput.Text;
        string str_tili = this.LangInput.Text;
        string str_pigchisi = this.CnNameInput.Text;
        string str_aptori = this.ByNameInput.Text;
        string con_str = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".") + "//App_Data//NameDB.mdb";
        OleDbConnection base_con = new OleDbConnection(con_str);
        base_con.Open();
        string cmd_str = "update [T_NamesInfo] set E_Name='" + str_nami + "',E_Sex='" + str_jinsi + "',E_Meaning='" + str_mezmuni + "',E_Lang='" + str_tili + "',E_CnName='" + str_pigchisi + "',E_By='" + str_aptori + "'  where id=" + str_id;
        OleDbCommand odbcmd = new OleDbCommand(cmd_str, base_con);
        if (odbcmd.ExecuteNonQuery() > 0)
        {
            base_con.Close();
            Response.Write("<script>alert('update finish!')</script>");
        }
        else
        {
            base_con.Close();
            Response.Write("<script>alert('faild!!')</script>");
        }
    }错误截图如下

解决方案 »

  1.   

      string cmd_str = "update [T_NamesInfo] set E_Name='" + str_nami + "',E_Sex='" + str_jinsi + "',E_Meaning='" + str_mezmuni + "',E_Lang='" + str_tili + "',E_CnName='" + str_pigchisi + "',E_By='" + str_aptori + "'  where [id]=" + str_id;
    string.format
    oledbparameter操作
      

  2.   

    看看你的那些字段哪些不允许为空.。 你调试的时候把鼠标移到 string cmd_str上面将SQL拿出来到数据库里面去执行一遍...   应该是某字段为空或着,int型打了单引号,或者是该打单引号的地方你没打.。  比如你这里的str_id是string型...
      

  3.   


    没有报错,可以正常运行网站的,但是在网站页面做更新(Update)操作就不同了,出现的是上面的那张图所显示.
      

  4.   

    <add name="accessConnStr" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source= |DataDirectory|a.mdb" providerName="System.Data.OleDb"/>  
     OleDbConnection connection = new OleDbConnection(connectionString); 
    检查参数类型。cmd_str 值
      

  5.   


    断点法看了
    cmd_str=update [T_NamesInfo] set E_Sex = '男' where [id]=1
    正常吧...