默认值等效于DBNull.Value
本文关键字:DBNull Value 默认值 | 更新日期: 2023-09-27 17:59:09
我正在尝试将默认值传递给c#中的SQL Server。
此代码传递null。有什么方法可以传递默认值吗?
foreach (SqlParameter Parameter in command.Parameters)
{
if (Convert.ToString(Parameter.Value) == "")
{
Parameter.Value = DBNull.Value;
}
}
要么不添加参数,要么添加参数,但将值设置为null
(而不是DBNull.Value
)。两者具有相同的效果:不传递参数,因此使用默认值。
您可以在SQL Server(存储过程…)中设置参数默认值
(@parm varchar(5) = null)
AS
Begin...
然后根本不要传递C#中的参数。
这里有另一个排序解决方案——它似乎是在存储过程中搜索参数默认值(实际上是在变量声明中搜索赋值的模式),并返回找到的任何默认值。所以…你可以从你的c#应用程序中调用这个过程来获取所有默认值,将它们分配给本地c#变量,然后在调用其他过程时使用它们。
http://www.codeproject.com/Articles/12939/Figure-Out-the-Default-Values-of-Stored-Procedure
以下是如何在表本身上找到默认值:(您可能需要去掉返回值的括号)
SELECT COLUMN_DEFAULT, replace(replace(COLUMN_DEFAULT,'(',''),')','') as DefaultWithNoParenthesis
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'WHATEVER'
祝你好运!