【问题标题】:How to send parameter to Query stored procedure and return to Gridview in Web (C#)如何将参数发送到查询存储过程并返回到Web中的Gridview(C#)
【发布时间】:2013-12-03 09:04:37
【问题描述】:

环境:SQL Server 2012、Visual Studio 2012

用途:用户填写文本框并点击查询按钮,Gridview将显示结果。

这是我的想法:

平均售价:

<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:myAsystemstring %>" SelectCommand="BasicinfoBuyersName" SelectCommandType="StoredProcedure">
   <SelectParameters>
      <asp:Parameter Name="buyername" Type="String" />
   </SelectParameters>
</asp:SqlDataSource>

<asp:TextBox ID="TxtboxQuery" runat="server"></asp:TextBox>
<asp:Button ID="BtnQuery" Text="Query" runat="server" OnClick="BtnQuery_Click"/>
<asp:GridView ID="GridView2" runat="server" AllowSorting="True" 
              AutoGenerateColumns="False" AutoGenerateDeleteButton="True" 
              AutoGenerateEditButton="True">
</asp:GridView>

C#:

protected void BtnQuery_Click(object sender, EventArgs e)
{
    if (IsPostBack != false)
    {
        if (TxtboxQuery.Text != "")
        {
            SqlDataSource2.SelectParameters.Add("buyname", TxtboxQuery.Text);
            GridView2.DataSourceID = SqlDataSource2;
        }
    }
}

存储过程:

CREATE PROCEDURE [dbo].[BasicinfoBuyersName]
@buyername varchar(50)
AS
BEGIN
    SELECT * 
    FROM dbo.BasicBuyernamesTable 
    WHERE [buyer] LIKE '%' + @buyername + '%'
END

我是 B/S 开发的新手。不知道有没有更好的办法。

【问题讨论】:

    标签: c# asp.net sql-server stored-procedures gridview


    【解决方案1】:

    如果您通过代码添加选择参数,请在下面删除

    <SelectParameters>
                    <asp:Parameter Name="buyername" Type="String" />
    </SelectParameters>
    

    现在

    SqlDataSource2.SelectParameters.Add("buyername", TxtboxQuery.Text); 
    // parameter name should equal to what you have in Stored procedure
    GridView2.DataSource = SqlDataSource2;
    GridView2.DataBind();
    

    或者您也可以使用ControlParameter 来完成同样的操作而无需代码

    <SelectParameters>
        <asp:ControlParameter ControlID="TxtboxQuery" Name="buyername"  Type="String" />
    </SelectParameters>
    

    【讨论】:

    • @HenryLee 是的,我刚刚复制了你的代码,需要更改为DataSource,很高兴你能找到解决方案。
    猜你喜欢
    • 2018-04-08
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    相关资源
    最近更新 更多