将变量发送到sqldatasource

时间:2011-07-16 17:36:31

标签: c# .net asp.net sql sqldatasource

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

1 个答案:

答案 0 :(得分:1)

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

应该是......

string name = ModeratorUsefulFunctions.GetMessageUsersName(g);

SqlDataSource1.SelectParameters["name"].DefaultValue = name;