当我调用 SSISDB catalog.set_execution_parameter_value 存储过程来设置执行我的项目的参数时,它会在布尔参数上爆炸
输入值的数据类型与“布尔”的数据类型不兼容
我尝试使用具有“False”或“1”值的字符串和对象。有没有办法从 c# 将布尔值传递给这个过程?
解决方案:
SqlCommand cmd = new SqlCommand("catalog.set_execution_parameter_value", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@execution_id", this.ExecutionID);
cmd.Parameters.AddWithValue("@object_type", ParamReference);
cmd.Parameters.AddWithValue("@parameter_name", ParamName);
SqlParameter p = cmd.Parameters.Add("@parameter_value", SqlDbType.Variant);
switch (ParamType)
{
case "String" :
p.Value = ParamValue;
break;
case "Int32" :
p.Value = Int32.Parse(ParamValue);
break;
case "Int64" :
p.Value = Int64.Parse(ParamValue);
break;
case "Boolean" :
p.Value = bool.Parse(ParamValue);
break;
}
cmd.ExecuteNonQuery();