Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何向存储过程发送空值?_Sql_Asp.net_.net_Sql Server_Vb.net - Fatal编程技术网

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,“.”。但它不起作用