我的应用程序是使用vb的asp.net。
在我的页面中,我有一个文本框用于传递日期。如果我没有输入日期并单击提交,则必须向存储过程传递null值。
我尝试了以下代码,例如DBNull.Value
和DateTime.MinValue
。在这种情况下,而不是null,"#12:00:00#"
正在传递。我必须传递Null。
我的应用程序是使用vb的asp.net。
在我的页面中,我有一个文本框用于传递日期。如果我没有输入日期并单击提交,则必须向存储过程传递null值。
我尝试了以下代码,例如DBNull.Value
和DateTime.MinValue
。在这种情况下,而不是null,"#12:00:00#"
正在传递。我必须传递Null。
只需将参数赋值为 DBNull.Value。
[编辑]
如果您正在使用 SqlParameter(感谢 Jon),那么如果出现任何错误,可以像这样设置它。
parameter.Value = DBNull.Value
Dim pflt_dateto As SqlParameter = cmd.CreateParameter
pflt_dateto.Direction = ParameterDirection.Input
pflt_dateto.DbType = SqlDbType.Int
pflt_dateto.IsNullable = True
pflt_dateto.ParameterName = "flt_dateto"
If String.IsNullOrEmpty(dateto) Then
pflt_dateto.SqlValue = DBNull
Else
pflt_dateto.SqlValue = dateto
End If
cmd.Parameters.Add(pflt_dateto)
既然您设置了可空参数,错误将会消失。现在的问题是.NET将null整数作为0传递,因此我们需要处理它。
Chao
pflt_dateto.SqlValue = DBNull.Value
吗?没有 .Value
,我收到了错误信息:“DBNull 是一种类型,不能用作表达式”。 - AllisonC