我试图在c#中将默认值传递给SQL Server。
此代码传递null。有没有办法通过默认?
foreach (SqlParameter Parameter in command.Parameters)
{
if (Convert.ToString(Parameter.Value) == "")
{
Parameter.Value = DBNull.Value;
}
}
答案 0 :(得分:5)
要么不添加参数,要么添加参数,但将值设置为null
( 不 DBNull.Value
)。两者都具有相同的效果:参数未传递,因此使用默认值。
答案 1 :(得分:2)
您可以在SQL-Server(存储过程...)
中设置参数default(@parm varchar(5) = null)
AS
Begin...
然后根本不要从C#传递参数。
答案 2 :(得分:1)
这是另一种解决方案 - 它似乎在搜索存储过程中查找参数默认值(字面意思是在变量声明中对赋值进行模式搜索),并返回找到的任何默认值。所以...你可以从c#app调用这个程序来获取所有默认值,将它们分配给本地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'
祝你好运!