相关疑难解决方法(0)

如何将空变量从C#.net代码传递给SQL存储过程

我从一段C#.net代码调用SQL存储过程:

SqlHelper.ExecuteDataset(sqlConnection, CommandType.StoredProcedure, STORED_PROC_NAME, sqlParameters);
Run Code Online (Sandbox Code Playgroud)

其中sqlParameters变量被定义为:

        SqlParameter[] sqlParameters = new SqlParameter[SQL_NUMBER_PARAMETERS];

        Log.Logger.Debug(string.Format("Running proc: {0} ", STORED_PROC_NAME));

        SqlParameters[0] = new SqlParameter("fieldID", SqlDbType.BigInt );
        SqlParameters[0].Value = fieldID;
        SqlParameters[0].Direction = ParameterDirection.Input;
Run Code Online (Sandbox Code Playgroud)

我现在需要将另外两个参数传递给这个存储过程(两者都是类型SqlDateTime),在这种情况下它们将变为NULL.

谢谢,

c# sql sql-server stored-procedures

63
推荐指数
5
解决办法
14万
查看次数

在不知道sqlDbType的情况下将DBNull.Value与SqlParameter一起使用?

我正在使用a SqlParameter将空值传递给可以为空的各种列的表.问题是如果没有sqlDbType,SqlParameter看起来默认为nvarchar.如果实际的db类型是varbinary,则会出现问题.我得到一个例外说法

不允许从数据类型nvarchar到varbinary(max)的隐式转换.使用CONVERT函数运行此查询.

当我创建SqlParameter时,我所知道的只是参数的名称和对象.如果对象为null,SqlParameter显然无法推断出正确使用的类型,那么有没有办法将SqlParameter与null值一起使用,而不必在创建sql参数时知道sqlDbType?

基本上将DBNull传递给数据库而不指定类型,让数据库处理它?

.net c# sql sql-server

5
推荐指数
2
解决办法
6541
查看次数

标签 统计

c# ×2

sql ×2

sql-server ×2

.net ×1

stored-procedures ×1