2010-09-13 71 views
0

在編寫函數來執行存儲過程時,我正在搞亂某處。我想我不知道如何執行SqlHelper.ExecuteReader。在SQL server 2005中SqlHelper.ExecuteReader執行存儲過程的函數

這應該返回狀態名稱。但我知道它是空的。任何想法,爲什麼?

感謝提前:)

reader = SqlHelper.ExecuteReader(DbConnString, System.Data.CommandType.StoredProcedure, "GetStateName", parameters); 
while (reader.Read()) 
    StateName = reader["StateName"].ToString(); 
return StateName; 

和存儲過程:

Create PROCEDURE [dbo].[GetStateName](
@StateInitials varchar 
) 

AS 

Begin 

SELECT StateName FROM StateList WHERE [email protected] 

End 
+0

什麼是存儲過程? – SLaks 2010-09-13 15:02:22

+0

如果你可以給你的SQL存儲過程和你傳遞的參數,這將有助於回答。 – 2010-09-13 15:02:43

+0

GetStateName是存儲過程! – Ram 2010-09-13 15:03:05

回答

0

我猜你傳遞給SP的@StateInitials的價值已超過一個字符,但是因爲你沒有指定varchar參數的大小(例如,varchar(25)),所以該值被截斷爲只有一個字符,因此沒有匹配。

here

當數據 定義或變量聲明 語句中指定n,則默認長度爲1