C# GridView中的ASP.NET代码

C# GridView中的ASP.NET代码,c#,asp.net,.net,C#,Asp.net,.net,我正在将一个经典的ASP站点转换为ASP.NET(C#),并且可以从一个页面调用多个存储过程。当前,在经典ASP中,存储过程名称和其他参数等值在查询字符串中传递。我现在正试图确定在ASP.NET中执行此操作的方法,因为我似乎无法使用变量作为存储过程名称。我试图做的是: <% string sp = Request.QueryString["sp"]; %> <asp:SqlDataSource ID="SqlDataSource1" runat="server" C

我正在将一个经典的ASP站点转换为ASP.NET(C#),并且可以从一个页面调用多个存储过程。当前,在经典ASP中,存储过程名称和其他参数等值在查询字符串中传递。我现在正试图确定在ASP.NET中执行此操作的方法,因为我似乎无法使用变量作为存储过程名称。我试图做的是:

<% string sp = Request.QueryString["sp"]; %>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="<%= sp%>" SelectCommandType="StoredProcedure">

现在唯一剩下的问题是如何只传递赋值的参数

我认为这并不是你想要的,但可以帮助你:

<asp:SqlDataSource ID="DataSource1" runat="server" SelectCommand="Your SQL"
       ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    <SelectParameters>
        <asp:QueryStringParameter Name="sp" QueryStringField="sp"
            Type="String" />
    </SelectParameters>
</asp:SqlDataSource>

我不能测试它,所以只能用一点盐。但我认为你们可以在这之外做更多的阐述。

问题解决了。在代码隐藏中:

protected void Page_Load(object sender, EventArgs e)
{
    sp = Request.QueryString["sp"];
    param1 = Request.QueryString["param1"];
    param2 = Request.QueryString["param2"];
    param3 = Request.QueryString["param3"];

    SqlDataSource1.SelectCommand = sp;

    if (param1 != null)
    {
        SqlDataSource1.SelectParameters.Add("param1", param1);
    }
    if (param2 != null)
    {
        SqlDataSource1.SelectParameters.Add("param2", param2);
    }
    if (param3 != null)
    {
        SqlDataSource1.SelectParameters.Add("param3", param3);
    }
}
在aspx中

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommandType="StoredProcedure">
</asp:SqlDataSource>


您不能在服务器标签中执行此操作:
@VitorCanova如上所述,我知道是这样的。我的问题是,如何在.NET中完成我在经典ASP中为这两个示例所做的工作。这只是代码中的一个随机点。现在我提供了一些可能会有所帮助的东西。您是否考虑过使用LINQ To SQL-您的生活会更轻松。
EXEC (@sp);
protected void Page_Load(object sender, EventArgs e)
{
    sp = Request.QueryString["sp"];
    param1 = Request.QueryString["param1"];
    param2 = Request.QueryString["param2"];
    param3 = Request.QueryString["param3"];

    SqlDataSource1.SelectCommand = sp;

    if (param1 != null)
    {
        SqlDataSource1.SelectParameters.Add("param1", param1);
    }
    if (param2 != null)
    {
        SqlDataSource1.SelectParameters.Add("param2", param2);
    }
    if (param3 != null)
    {
        SqlDataSource1.SelectParameters.Add("param3", param3);
    }
}
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommandType="StoredProcedure">
</asp:SqlDataSource>