默认值等效于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;
    }
}

默认值等效于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'

祝你好运!