我从一段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.
谢谢,
在
我正在使用a SqlParameter将空值传递给可以为空的各种列的表.问题是如果没有sqlDbType,SqlParameter看起来默认为nvarchar.如果实际的db类型是varbinary,则会出现问题.我得到一个例外说法
不允许从数据类型nvarchar到varbinary(max)的隐式转换.使用CONVERT函数运行此查询.
当我创建SqlParameter时,我所知道的只是参数的名称和对象.如果对象为null,SqlParameter显然无法推断出正确使用的类型,那么有没有办法将SqlParameter与null值一起使用,而不必在创建sql参数时知道sqlDbType?
基本上将DBNull传递给数据库而不指定类型,让数据库处理它?