向sqldatasource发送变量

本文关键字:变量 sqldatasource | 更新日期: 2023-09-27 18:02:12

我有一个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>

页面加载代码:

  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 

向sqldatasource发送变量

您需要传递参数值,而不是在SQLDataSource中添加参数。由于您已经在SelectParameters集合中添加了参数,因此您只需要传递该值。你这样做的方式,它增加了另一个选择参数,这就是问题所在。

应该是…

string name = ModeratorUsefulFunctions.GetMessageUsersName(g);
SqlDataSource1.SelectParameters["name"].DefaultValue = name;