ASP。NET 网页:创建一个搜索框以从 Oracle 中的表中搜索数据

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/15926868/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 01:34:09  来源:igfitidea点击:

ASP. NET webpage: create a search box to search data from a table in Oracle

asp.netsqloraclesearch

提问by Harry

I'm trying to create an ASP.NET webpage to output a textbox, then user will enter the key in this textbox and I use that key to put into WHERE condition in SQL code to output data that matches the key. For example, user enters ArtistID in the textbox and I need to print the table SPEEDOFSALEREPORT using

我正在尝试创建一个 ASP.NET 网页来输出一个文本框,然后用户将在此文本框中输入密钥,我使用该密钥在 SQL 代码中放入 WHERE 条件以输出与该密钥匹配的数据。例如,用户在文本框中输入 ArtistID,我需要使用

SELECT * FROM SPEEDOFSALEREPORT WHERE ArtistID = "the key that user just enter"

SELECT * FROM SPEEDOFSALEREPORT WHERE ArtistID =“用户刚刚输入的密钥”

but I don't know how. My code below creates a text box and print all rows in the table. Please give me a hint. I tried googling all days but cannot find the answer. Thank you.

但我不知道怎么做。我下面的代码创建一个文本框并打印表中的所有行。请给我一个提示。我整天都在谷歌上搜索,但找不到答案。谢谢你。

This is my updated Default.aspx

这是我更新的 Default.aspx

    <body>
    <form id="form1" runat="server">
    <asp:TextBox ID="txtArtistID" runat="server" /><br /><br />
    <asp:Button ID="btnSearch" runat="server" Text="Search" CssClass="submit" />

    <div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField DataField="TRANSACTIONID" HeaderText="TRANSACTIONID" 
                    SortExpression="TRANSACTIONID" />
                <asp:BoundField DataField="WORKID" HeaderText="WORKID" 
                    SortExpression="WORKID" />
                <asp:BoundField DataField="ARTISTID" HeaderText="ARTISTID" 
                    SortExpression="ARTISTID" />
                <asp:BoundField DataField="DATEACQUIRED" HeaderText="DATEACQUIRED" 
                    SortExpression="DATEACQUIRED" />
                <asp:BoundField DataField="DATESOLDID" HeaderText="DATESOLDID" 
                    SortExpression="DATESOLDID" />
                <asp:BoundField DataField="TURNAROUNDDAYS" HeaderText="TURNAROUNDDAYS" 
                    SortExpression="TURNAROUNDDAYS" />
                <asp:BoundField DataField="ASKINGPRICE" HeaderText="ASKINGPRICE" 
                    SortExpression="ASKINGPRICE" />
                <asp:BoundField DataField="SALESPRICE" HeaderText="SALESPRICE" 
                    SortExpression="SALESPRICE" />
                <asp:BoundField DataField="SALESMARGIN" HeaderText="SALESMARGIN" 
                    SortExpression="SALESMARGIN" />
            </Columns>
        </asp:GridView>
    </div>

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="Data Source=oracle2;User ID=****;Password=****;Unicode=True" 
    ProviderName="System.Data.OracleClient" 
    SelectCommand="SELECT * FROM SPEEDOFSALEREPORT WHERE ARTISTID = @artistID;">

    <SelectParameters>
        <asp:ControlParameter Name="artistID" ControlID="txtArtistID" PropertyName="Text" />
    </SelectParameter>
</asp:SqlDataSource>

    </form>
</body>

回答by sanjay bhansali

check this line :

检查这一行:

 <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="Data Source=oracle2;User ID=******;Password=***********;Unicode=True" 
        ProviderName="System.Data.OracleClient" 
        SelectCommand="SELECT * FROM SPEEDOFSALEREPORT">

Correct using this :

正确使用这个:

 <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="Data Source=oracle2;User ID=******;Password=***********;Unicode=True" 
        ProviderName="System.Data.OracleClient" 
        SelectCommand="SELECT * FROM SPEEDOFSALEREPORT"
        FilterExpression="Artistid='{0}'">

       <FilterParameters><asp:ControlParameter Name="" ControlID="ArtistID" PropertyName="Value"/>  
        </FilterParameters>  

回答by LukeGeneva

You need to use the ArtistID as a parameter, and also change your text box and submit button to ASP controls like so:

您需要使用 ArtistID 作为参数,并更改您的文本框和提交按钮到 ASP 控件,如下所示:

<asp:TextBox ID="txtArtistID" runat="server" /><br /><br />
<asp:Button ID="btnSearch" runat="server" Text="Search" CssClass="submit" />
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="Data Source=oracle2;User ID=******;Password=***********;Unicode=True" 
    ProviderName="System.Data.OracleClient" 
    SelectCommand="SELECT * FROM SPEEDOFSALEREPORT WHERE ARTISTID = @artistID;">
    <SelectParameters>
        <asp:ControlParameter Name="artistID" ControlID="txtArtistID" PropertyName="Text" />
    </SelectParameters>
</asp:SqlDataSource>

Then bind the grid on the button click in your code behind (VB.NET):

然后将网格绑定在按钮单击后面的代码中(VB.NET):

Protected Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click
    GridView1.DataBind()
End Sub

Or (C#):

或(C#):

protected void btnSearch_Click(Object sender, EventArgs e)
{
    GridView1.DataBind();
}

回答by Habeebrahman parambil

protected void Button1_Click(object sender, EventArgs e){
        if (TextBox1.Text != ""){
        con.Open();
        int i = 0;
        SqlCommand cmd0 = new SqlCommand("select noticeid from TBLnotice where noticeid='" + TextBox1.Text + "'", con);
        i= int.Parse(cmd0.ExecuteScalar().ToString());
        if (i > 0){
            SqlCommand cmd1 = new SqlCommand("select notice from TBLnotice where noticeid='" + TextBox1.Text + "'", con);
            string name = cmd1.ExecuteScalar().ToString();
            txtadds.Text = name;
            TextBox1.Text = "";
            txtadds.Text = "";
            con.Close();
        }
        else{
            Label7.Visible = true;
            con.Close();
        }
    }
}