SqlHelper.ExecuteReader执行存储过程的函数
问题描述:
在编写函数来执行存储过程时,我正在搞乱某处。我想我不知道如何执行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
答
我猜你传递给SP的@StateInitials的价值已超过一个字符,但是因为你没有指定varchar参数的大小(例如,varchar(25)),所以该值被截断为只有一个字符,因此没有匹配。
见here
当数据 定义或变量声明 语句中指定n,则默认长度为1
什么是存储过程? – SLaks 2010-09-13 15:02:22
如果你可以给你的SQL存储过程和你传递的参数,这将有助于回答。 – 2010-09-13 15:02:43
GetStateName是存储过程! – Ram 2010-09-13 15:03:05