如何在按下按钮时更改SQLDatasource参数

时间:2014-04-29 10:06:22

标签: asp.net sql vb.net

我有一个Gridview,填充条目很好。

我需要做的是启用它,以便在文本框中输入字符串时,它会更改SQLDatasource参数以搜索匹配的条目。

所以这是正在使用的ASPx文件。

<%@ Page Language="vb" AutoEventWireup="True" CodeBehind="test.aspx.vb" MasterPageFile="~/Site1.Master"%>

<asp:Content ID="content" runat="server" ContentPlaceHolderID="Content">

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<span class="country"></span>
<div align="right">

    <asp:TextBox runat="server" ID="textbox1"></asp:TextBox>

    <asp:Button runat="server" Text="Search" ID="Button1" OnClientClick="Button1_click" PostBackUrl="~/test.aspx" />

</div>
<br />
<br />

<div align="center">

    <asp:UpdatePanel runat="server" ID="updatepanel">
        <ContentTemplate>


            <asp:SqlDataSource runat="server" ID="datab" SelectCommand="SELECT * FROM [TEST] where [unit]=@unit" ConnectionString="<%$ ConnectionStrings:Con %>" ProviderName="<%$ ConnectionStrings:Con.ProviderName %>">
                <SelectParameters>
                    <asp:Parameter DefaultValue="UK" Name="unit" Type="String" />

                </SelectParameters>

            </asp:SqlDataSource>

            <asp:GridView ID="View" DataSourceID="datab" runat="server" CssClass="table" AllowSorting="True" AutoGenerateColumns="True" DataKeyNames="Id">
            </asp:GridView>

        </ContentTemplate>

    </asp:UpdatePanel>

</div>
</asp:Content>

以上工作absolutley罚款,我可以手动更改参数,它将工作。但是我无法通过用户提交来更新它。

回溯:

Public Class test

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim unit As String = textbox1.Text

    datab.UpdateParameters("Unit").DefaultValue = unit

    updatepanel.Update()

End Sub
End Class

我猜测我在引用页面后面的代码时出错了,因为当按下按钮时页面似乎刷新了。

感谢任何帮助。

****** ********编辑

我尝试在后台文件中使用以下代码,但它现在不会在实际页面上显示任何内容。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim DS As SqlDataSource = New SqlDataSource
        Dim con As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\local\test.accdb"
        Dim sc As String = "SELECT * FROM [TEST] where [unit]=@unit"


    DS.ID = "datab"
    DS.ConnectionString = con
    DS.SelectCommand = sc
    DS.SelectParameters("Unit").DefaultValue = "UK"

    View.DataSource = datab
    View.DataBind()


End Sub

0 个答案:

没有答案