前台function Button1_onclick() 
{
    var bhTxt=document.getElementById("bhTxt");
    var bxbh=bhTxt.innerText;
    var TextBox=document.getElementById("TextBox1");
    var names=TextBox.outerText;
    var result='<%=insert("'+names+'","'+bxbh+'")%>';
    alert(result);
}
后台
    public string insert(string names,string bxbh)
    {
        //string flag = "";
       //SqlConnection conn = DbOpen.DbaseConfigConnect();       
        //string str = "update WBLXDJB set WXR= '"+names+"' where BXBH='"+bxbh+"'";
        //SqlCommand command = new SqlCommand(str, conn);
        //int count=(int)command.ExecuteNonQuery();
        //if (count != 0)
        //    flag = "提交成功";
        //else
        //    flag = "提交失败";
        string str1 = names + "hello" + bxbh;
        return str1;
    }
请问朋友们,我这样可以正常弹出窗体“张三,李四,001”,如果我把注释去掉后报错
列名 'names' 无效。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 列名 'names' 无效。

解决方案 »

  1.   

    自己顶一顶,我就是想实现,通过普通按钮,将表单上的维修人员的姓名提交到数据库,不用asp:button
      

  2.   

    那个sql语句的names和bxbh都是空,但是我注释掉以后,能正确返回str1,“张三,李四hello001”,那两个值到底传入方法中没有,求解释
      

  3.   

    如果sql语句是"update WBLXDJB set WXR= '赵六' where BXBH='"+bxbh+"'";,表中所有行都改成了赵六
    如果sql语句改为names的话,就报错了,奇了个怪了
      

  4.   

    var bhTxt=document.getElementById("bhTxt");
              var bxbh=bhTxt.value;
              var TextBox=document.getElementById("TextBox1");
              var names=TextBox.value;
      

  5.   

    这样改:
    function Button1_onclick()  
            {
              var bhTxt=document.getElementById("bhTxt");
              var bxbh="'"+bhTxt.value+"'";
              var TextBox=document.getElementById("TextBox1");
              var names="'"+TextBox.value+"'";          var result='<%=insert("'+names+'","'+bxbh+'")%>';
              alert(result);
            }
    后台:
    string str = "update WBLXDJB set WXR= "+names+" where BXBH="+bxbh;
    说明:Sql中的单引号不要了。
    分析:
    <%=%>该代码块在页面首次加载的时候会运行,相当于在页面刚呈现的时候,
    var result='update WBLXDJB set WXR= '+names+' where BXBH='+bxbh+'';已经是这样的了,这里一个单引号是正确的
    这种情况是没有问题的。问题出在你点击按钮后,返回的就是这样的数据了
    var result='update WBLXDJB set WXR= ''+names+'' where BXBH=''+bxbh+''';
    这样写语法有错误。相当于第二次在第一次的基础上又加了一个单引号。
      

  6.   

    谢谢大侠你这样虽然不报错了额,但是SQL语句没有执行。挺厉害,哈哈,我这还有什么地方不对啊。
      

  7.   

    var result='<%=insert("'+names+'","'+bxbh+'")%>';
    应该是这里出错了吧,你用断点跟一下,看下你传入的参数值是什么
      

  8.   

    错误已经没有了,我能正确弹出sql语句了,但是那个修改却没有成功,这个ExecuteNonQuery();
      

  9.   

    你走调试,然后把那个string str 的值复制到数据库中看看能不能执行。。
    看看在数据库中报错吗?
      

  10.   

    数据没有更新这个需要你自己去测试:
    取出提交的Sql语句直接拿到数据库运行看,如果能运行成功,那就说明sql语句没有问题。
       也只是说明语法没问题,要确定where条件是否用上了,数据库中有没有相应记录
    如果数据库中没有where条件对应的数据,执行依然成功,只是返回的是0,所以界面显示修改失败,也不报错
      

  11.   

    我明白这个原理了,页面加载以前就把后台代码执行了一遍,当点击按钮时,只是吧页面上的值赋给了表达式<%=%>,不会再一次执行后台代码了,所以不会插入记录。