在datagrid编辑中,我实现了更新行的功能.但是更新的文本框没有进行验证,当输入'等特殊字符的时候,系统就有错误,求高手:如何解决在更新下的用户输入验证问题!谢谢!

解决方案 »

  1.   

    在DataGrid的UpdateCommand事件处理程序中验证用户的输入,通过才提交数据库
      

  2.   

    另外,输入单引号导致报错并不是验不验证的问题,而是你的数据访问层没有防止sql注入,
    而是简单地使用字符串拼凑的方式来写sql,
    例如string sql = "update table1 set field1='"+ TextBox1.Text +"'",显然,当TextBox1.Text里面有单引号时,这个sql语句便不对了,所以,正确的、标准的操作ado.net的写法是使用Parameter的方式:
    System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection("连接字符串");
                System.Data.SqlClient.SqlCommand cm = new System.Data.SqlClient.SqlCommand();
                cm.Connection = cnn;
                cm.CommandText = "insert into table1 (field1,field2) values(@field1,@field2)";
                
                cm.Parameters.Add("@field1",SqlDbType.Float);
                cm.Parameters["@field1"].Value = 1;
                cm.Parameters.Add("@field2",SqlDbType.VarChar);
                cm.Parameters["@field2"].Value = TextBox2.Text;
                cnn.Open();
                cm.ExecuteNonQuery();
                cnn.Close();
      

  3.   

    一个笨办法,你可以写js方法,然后在itemdatabound事件里面将该方法和按牛的单击事件绑定同时将几个textbox的clientid传值到前台