SqlHelper.ExecuteReader执行存储过程的函数

时间:2010-09-13 14:56:05

标签: c# asp.net sql

在编写执行存储过程的函数时,我正在搞乱某个地方。我想我不知道如何执行SqlHelper.ExecuteReader。在SQL Server 2005中

这应该返回州名。但我把它弄空了。任何想法,为什么??

提前致谢:)

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 StateInitials=@StateInitials

End

1 个答案:

答案 0 :(得分:0)

我猜你为@StateInitials传递给SP的值有多个字符,但是因为你没有指定varchar参数的大小(例如,varchar(25)),所以被截断为只有一个字符,因此没有匹配。

请参阅here

  

在数据中未指定n时   定义或变量声明   声明,默认长度为1。