2010-10-05 24 views

回答

3

我認爲,這是因爲你引用的MSDN文檔描述了誤操作的可能性:當您使用此 超載 SqlParameterCollection.Add方法來 指定整數參數

要小心值。 由於這種重載採用 Object類型的值,則必須在 值爲零,如下面的C# 示例演示 積分值轉換爲一個對象類型。

parameters.Add("@pname", Convert.ToInt32(0)); 

如果不進行這種轉換, 編譯器假定你是 試圖調用 SqlParameterCollection.Add(字符串, SqlDbType)超載。

事實上,你的新API引用文檔說之多:

添加的,需要一個 串過載和對象,是因爲與 SqlParameterCollection可能歧義棄用 。添加過載 ,其中需要一個字符串和一個SqlDbType枚舉值 其中傳遞一個 整數字符串可能是 解釋爲 參數值或相應的 SqlDbType值。

0

我認爲這是由於價值被傳遞通過Object,和其他超載Add()由於含糊不清。我記得在有些情況下我無意中調用了不同版本的Add(),因爲我傳遞的值碰巧是不同的,更具體的數據類型。

相關問題