调用存储过程,传递NULL值,处理布尔值

fla*_*404 4 .net sql-server stored-procedures

在调用存储过程时,我将值连接在一起,我的问题是如何调用存储过程但在其中一个参数中发送'NULL'值?

让我们说AID = null,但是如果我把它传递给我的查询我会得到一个错误?!

QueryConn.Execute("Search_Res " & Count & "," & AccessList("InvoiceLevel") & "," & AID)
Run Code Online (Sandbox Code Playgroud)

好的,所以我的下一个问题是如何传入一个布尔变量?

在我的存储过程中,var @SearchChildren是true还是false,但是如何定义它或者我应该使用int并为自己简化并使用0或1?

MS SQL Server 2005.

wom*_*omp 8

看起来您正在尝试使用即席查询而不是ADO.Net DBCommand对象来执行SP.你不能只在你的字符串中添加"@SearchChildren = null"吗?

您还可以使用命令对象显式设置参数值,它相对简单.

SqlCommand cmd = new SqlCommand("Search_Res", QueryConn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@SearchChildren", DBNull.Value);
..
..
values = cmd.Execute();
Run Code Online (Sandbox Code Playgroud)

请原谅C#......我的VB生锈了.