當我打電話SSISDB catalog.set_execution_parameter_value存儲過程設置爲我的項目的執行參數,它炸燬了與調用從C#catalog.set_execution_parameter_value用布爾參數
的數據類型的布爾參數輸入值的不與數據類型的「布爾」
我使用字符串和對象,具有「假」或「1」值試圖兼容。有沒有辦法將一個布爾值從c#傳遞給這個過程?
SOLUTION:
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();
ParamValue是什麼類型?我期望0或1與SQL一起工作,因爲這就是t-sql的樣子。也許把這個改成int? – 2014-10-01 18:28:42
存儲的proc需要sql_variant。在C#中,我嘗試將ParamValue設置爲字符串和對象。它不能是int,因爲一些參數是字符串。 – Metaphor 2014-10-01 18:43:49