System.DBNull
不可把任何东西赋值System.DBNull。也不可把System.DBNull用作判断条件(if aa=System.DBNull then ...也会提示这个错误)一个解决办法:TextBox2.text为空值时,给一个空格给它,select出来时,trim()一下就好了。

解决方案 »

  1.   

    既然你使用的是存储过程,那么对于那些可以为空的参数最好设置一个默认值null,这样如果你在程序里面不对它赋值,如果不指定这个参数的值就会用默认的null去执行。这样可以避免纠缠于DBNull,如果非要使用你可以试一试SBNull.Value!
      

  2.   

    Mybeautiful(天之痕) ( )说的是读数据时的处理,谢谢。我现在遇到的是当TEXTBOX2.TEXT=""要作为NULL输入参数的处理cuike519(studing sps(修练中...)) 说的不错。
    问题是怎样 当TEXTBOX2.TEXT=""时将它的值默认为NULL呢?
    编译器错误信息: BC30451: 名称“SBNull”未声明。
      

  3.   

    异常详细信息: System.InvalidCastException: 从字符串“”到类型“Date”的强制转换无效。
      

  4.   

    用 DateTime.Parse(textbox2.text) 该字符串未被识别为有效的 DateTime。 
      

  5.   

    dbParam_bdate.ParameterName = "@bdate"
    if bdate.Trim()="" then
       dbParam_bdate.Value = DBNull.Value
    else
       dbParam_bdate.Value = DateTime.Parse(bdate)
    end if
    dbParam_bdate.DbType = System.Data.DbType.DateTime
    dbCommand.Parameters.Add(dbParam_bdate)
      
      

  6.   

    用DBNull.Value.
    在存储过程中已成功使用。
      

  7.   

    在VB.NET中不再支持像VB6.0中的Null值,而是用System.DBNull.Value
      

  8.   

    多谢  CMIC(大象) !!!也多谢其他热心的朋友!