有一个数据库字段为int类型,可以为空。假定前台有一个Textbox控件接受数据输入,如果Textbox没有接受到任何数值,空值的情况传入数据库,会发生输入格式不符的问题,请问是什么原因?如何解决?万分感谢!!

解决方案 »

  1.   

    你所说的空值是空字符串,就是''。这个跟null不一样。
    你可以在程序里判断阿,如果是空字符串''的话就给变量赋一个值,既然是int类型的,那就让他等于0。
      

  2.   

    这个应该是你从Textbox控件取数据的时候做判断
      

  3.   

    举个列子:
      一般的查询   string sql="select * from 表 where id="+Textbox.text   ;
       如果 Textbox 不为空的话,
           那么传到SQL 里面执行的语句就为 select * from 表 where id=8  (某一值)  
            所以没有报错
       但是如果 Textbox 为空的话 
      那么传到SQL 里面执行的语句就为 select * from 表 where id=   ;
             自然 语句出错了, SQL里面没有这种写法 
        所以楼主应该加个判断语句
          if(Textbox!="")
           {
                sql=="select * from 表 where id="+Textbox.text   ;
           }
          if(Textbox="")
           {
              sql=="select * from 表 where id=0"  ;
           }
      

  4.   

    根据如题你的要求得知:
    你使用TextBox控件,接收用户输入,并且其输入的值将写入一个int字段...为避免写入时格式不符的情况....
    ------------------------------------------------------------------------------
    这事实上是一个输入的验证问题,需要你在写入到数据库之前,自行验证数据的有效性,现在假定你使用VB作为编程工具,现贴上一段代码:Private Sub cmdSave_click()
        
        Dim strValue As String  '接收输入的值
        Dim strErr As String    '接收错误消息
        
        strValue = Trim(Text1.Text)
        If strValue = "" Then
            strErr = "该字段不能为空,请重新输入!"
        ElseIf Not IsNumeric(strValue) Then
            strErr = strErr + vbCrLf + "该字段须为数字,请重新输入!"
        End If
        
        '验证完毕....有错误信息则结束过程,无错误则调用保存代码
        If strErr <> "" Then
            MsgBox strErr, vbExclamation, "输入错误"
        Else
            '在此处填入保存至数据库的代码
        End If
        
    End Sub
      

  5.   

    执行上面的代码,需要在VB窗体上有一个TextBox控件,一个按钮控件,其名称为cmdSave...