2010-09-13 72 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