C#将boolean作为sql_variant参数的位

时间:2017-11-30 21:11:34

标签: c# sql-server

我正在尝试使用C#来执行sp_set_session_context,其第二个参数@value的类型为sql_variant。但似乎没有办法让我指出我为@value提供的价值有点。这是代码:

DbCommand cmd = connection.CreateCommand();
cmd.CommandText = "sp_set_session_context";
cmd.CommandType = System.Data.CommandType.StoredProcedure;

DbParameter param = cmd.CreateParameter();
param.ParameterName = "@key";
param.Value = "key";
cmd.Parameters.Add(param);

param = cmd.CreateParameter();
param.ParameterName = "@value";
param.Value = true;
cmd.Parameters.Add(param);

cmd.ExecuteNonQuery();

上面的代码执行:

exec sp_set_session_context @key=N'key',@value=1

由于@value是sql_invariant,因此它将1视为int而不是bit。我需要的是:

exec sp_set_session_context @key=N'key',@value=cast(1 as bit)

除了执行SQL文本而不是直接调用存储过程之外,还有其他方法吗?

0 个答案:

没有答案