我有一个sqldatasource,它带有一个带参数的存储过程。但是存储过程没有执行...
我成功传递了参数吗?
的SqlDataSource:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:CP_AllQuestionsAnswered %>"
SelectCommand="GetMessagesTitles" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter Name="Name" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
后面的pageLoad代码:
string name = ModeratorUsefulFunctions.GetMessageUsersName(g);
SqlDataSource1.SelectParameters.Add("@Name", name);
存储过程:
ALTER PROCEDURE dbo.GetMessagesTitles
@Name nvarchar(50)
AS
SELECT MessageTitle, MessageID
FROM Messages
WHERE MessageTo=@Name
答案 0 :(得分:1)
您需要传递参数值,而不是在SQLDataSource中添加参数。由于您已在SelectParameters
集合中添加了参数,因此您只需传递该值。你正在做的方式,它增加了另一个Select参数,这就是问题所在。
应该是......
string name = ModeratorUsefulFunctions.GetMessageUsersName(g);
SqlDataSource1.SelectParameters["name"].DefaultValue = name;