Sql 如何向存储过程发送空值?
我的存储过程如下所示:Sql 如何向存储过程发送空值?,sql,asp.net,.net,sql-server,vb.net,Sql,Asp.net,.net,Sql Server,Vb.net,我的存储过程如下所示: CREATE PROCEDURE [dbo].[insertCompList_Employee] @Course_ID int, @Employee_ID int, @Project_ID int = NULL, @LastUpdateDate datetime = NULL, @LastUpdateBy int = NULL AS BEGIN SET NOCOUNT ON
CREATE PROCEDURE [dbo].[insertCompList_Employee]
@Course_ID int,
@Employee_ID int,
@Project_ID int = NULL,
@LastUpdateDate datetime = NULL,
@LastUpdateBy int = NULL
AS
BEGIN
SET NOCOUNT ON
INSERT INTO db_Competency_List(Course_ID, Employee_ID, Project_ID, LastUpdateDate, LastUpdateBy)
VALUES (@Course_ID, @Employee_ID, @Project_ID, @LastUpdateDate, @LastUpdateBy)
END
我的asp.net vb代码隐藏如下:
dc2.insertCompList_Employee(
rdl_CompList_Course.SelectedValue,
RadListBox_CompList_Select.Items(i).Value.ToString,
"0",
DateTime.Now,
HttpContext.Current.Session("UserID")
)
我想为Project\u ID
插入null
值,而不是0
我尝试了
NULL
,'NULL'
但返回错误。使用内置值:DBNull.value
我看不到将值转换为参数的代码,但如果参数集合应为null,则不要将其添加到参数集合中。只要存储过程中存在默认值,它就可以正常工作,在您的情况下为null
if projectid <> 0 then
cmd.addwithvalue("@ProjectId",projectid)
end if
如果投影为0,则
cmd.addwithvalue(“@ProjectId”,ProjectId)
如果结束
我终于找到了解决方案
我对项目id使用可空类型。
声明如下:
Dim pid As System.Nullable(Of Integer)
然后通过存储过程进行代码隐藏以插入数据
dc2.insertCompList_Employee(
rdl_CompList_Course.SelectedValue,
RadListBox_CompList_Select.Items(i).Value.ToString,
pid,
DateTime.Now,
HttpContext.Current.Session("UserID"))
您是否尝试过在不带引号的情况下传递null或传递DBNull.Value是的,我尝试过DBNull.Value,null,“.”。但它不起作用