winform中textBox控件的数据传到数据库,我们都知道用'"+txtBox.Text.Trim()+"'可以传值。但是,当textBox内容为空时,传值就会出错。对付这样的办法我们可以把txtBox的默认现在为null。也就是txtBox的Text设置为null。可这样,给客户的时候。客户说:这样看上去很不舒服。现在,要让txtBox什么都不显示,可在用'"+txtBox.Text.Trim()+"'传值的是自动传为null。怎么弄呀?请各位指点一二

解决方案 »

  1.   

    if (textBox1.Text.Trim()==string.Empty)
                {
                    ......
                }
      

  2.   

    为NULL,不用传值也可以的吧,看数据库字段怎么设计的了,是否允许为空
      

  3.   

    你非要这么直接的把txtBox.Text.Trim()链接在sql语句里吗? 为什么不在这之前用一个string的变量接收->判断->再传进去呢???(难道说客户需求?)呵呵  
      

  4.   

    你这样写 会有 sql脚本注入的风险   建议过滤一下 textbox值正常写法要加一个判断  如果文本框没有值则 不拼凑这一段 sqlif(!string.IsEmptyOrNull(this.xxx.Text))
    {}不要给this.xxx.Text  赋值 null  会有不必要的麻烦
    还有一种办法 sql 写的时候 where 子句 过滤一下 特殊情况
      

  5.   

    拼接SQL语句时采用参数形式,再对参数进行赋值。这样就不担心SQL注入了。
      

  6.   

    StringBuilder sb = new StringBuilder();
    sb.Append("select j.dev_serial,u.user_lname,j.rec_datetime,j.user_serial from ")
    .Append("jt_pass j,dq_user u where j.user_serial = u.user_serial ")
    .Append("and j.jt_state is null and j.dev_serial = @EQUIPID");
    command = new SqlCommand(sb.ToString(), sqlConn);
    param = command.Parameters.Add("@EQUIPID", SqlDbType.Int);
    param.Value = equipId;