3

我的System.Data.SqlClient報告我忘了傳遞參數。SQL Server 2008 R2丟失參數

嗯,我一直在撓我的頭。

我在VS2008中使用SQL Server 2008 R2和Asp.Net MVC2。

這是屏幕。

enter image description here

我錯過了什麼?

編輯

這裏是存儲過程頭

ALTER PROCEDURE [dbo].[ClientMst_AUTO](@Params VARCHAR(50),@result xml output) 
as 
BEGIN 
+1

你能告訴我們你正在使用的實際SQL語句嗎?另外:當你定義一個'SqlParameter'類型的'SqlDbType.VarChar' - 你應該**總是**定義一個長度 - 否則你可能會以1個字符長度的字符串結束! –

+0

你的意思是存儲過程或命令文本? – Deb

+0

如果它是一個存儲過程 - 那麼存儲的proc頭文件(查看參數的樣子) - 否則是完整的SQL語句。 –

回答

2

的代碼看起來不錯乍一看 - 我看到的是可能解釋行爲的唯一一點就是:你定義的參數@resultParameterDirection.InputOutput - 但你沒有提供的任何值參數上輸入側...

嘗試加入這一行添加parm2cmd.Parameters採集前:

parm2.Value = string.Empty; 

這是否能改變什麼?

OR:只是將參數定義爲ParameterDirection.Output(而不是InputOutput) - 是否解決了問題?

+1

SPOT ON!這正是問題所在。非常感謝marc。現在它初始化參數值後工作正常。 – Deb

0

如果您不打算將值傳遞到您的@result參數,設置parm2.DirectionParameterDirection.Output

+0

謝謝,但在我所有的存儲過程中,它都是這樣傳遞的,它們工作正常。到了一天,我剛決定在我的DAL中創建一個新的過載,在這裏我正面臨着這個奇怪的問題。 – Deb

+0

是否可以歸因於SqlClient損壞?或臨時文件問題? – Deb