SQL选择多个参数

时间:2015-12-03 14:25:01

标签: asp.net sql-server vb.net

我正在尝试创建一个搜索页面,该页面将使用多个文本框来构建查询并将结果输出到gridview,但如果用户只选择完成某些文本框,则select语句会中断并且不会将结果返回给网格视图。我该如何迎合这个?我只尝试了一个变量但得到了一个"必须声明标量变量"错误。

ASP代码:

         <h2>
    Find Client</h2>

<div>
    <fieldset class="login">
        <legend>Client Detail</legend>

        <div class="columns">
            <div class="label">
                <asp:Label ID="lblEmployeeNumber" CssClass="Smart-css_Label" runat="server">Client Number:</asp:Label>
            </div>
            <div class="textbox">

                 <asp:TextBox ID="txtClientNumber" placeholder="Client Number" runat="server" CssClass="Smart-css_Text"></asp:TextBox>
            </div>
            <div class="label">
            </div>
            <div class="textbox">
            </div>
            <div class="label">
                <asp:Label ID="lblName" CssClass="Smart-css_Label" runat="server">Name:</asp:Label>
            </div>
            <div class="textbox">
                <asp:TextBox ID="txtName" placeholder="Name" runat="server" CssClass="Smart-css_Text"></asp:TextBox>
            </div>
            <div class="label">
                <asp:Label ID="lblSurname" CssClass="Smart-css_Label" runat="server">Surname:</asp:Label>
            </div>
            <div class="textbox">
                <asp:TextBox ID="txtSurname" placeholder="Surname" runat="server" CssClass="Smart-css_Text"></asp:TextBox>
            </div>
            <div class="label">
            </div>
            <div class="textbox">
            </div>
            <div class="label">
            </div>
            <div class="textbox">
            </div>
            <div class="label">
                <asp:Label ID="lblEmployer" CssClass="Smart-css_Label" runat="server">Client Type:</asp:Label>
            </div>
            <div class="textbox">
                <asp:DropDownList ID="cboClientType" placeholder="Client Type" CssClass="Smart-css_Combo" runat="server">
                </asp:DropDownList>
            </div>
            <div class="label">
                <asp:Label ID="Label5" CssClass="Smart-css_Label" runat="server">Client Status:</asp:Label>
            </div>
            <div class="textbox">
                <asp:DropDownList ID="cboClientStatus" CssClass="Smart-css_Combo" runat="server">
                </asp:DropDownList>
            </div>


            <div class="label">
                <asp:Label ID="Label4" CssClass="Smart-css_Label" runat="server">Company Name:</asp:Label>
            </div>
            <div class="textbox">
                <asp:TextBox ID="txtCompanyName" runat="server" CssClass="Smart-css_Text"></asp:TextBox>
            </div>
            <div class="label">
            </div>
            <div class="textbox">
            </div>
            <div class="label">
            </div>
            <div class="textbox">
            </div>
            <div class="label">
            </div>
            <div class="textbox">
            </div>
            <div class="label">
                <asp:Label ID="Label13" CssClass="Smart-css_Label" runat="server">Postal Code:</asp:Label>
            </div>
            <div class="textbox">
                <asp:TextBox ID="txtPostcode" runat="server" CssClass="Smart-css_Text"></asp:TextBox>
            </div>
            <div class="label">
                <asp:Label ID="lblMobileNo" CssClass="Smart-css_Label" runat="server">Mobile Number:</asp:Label>
            </div>
            <div class="textbox">
                <asp:TextBox ID="txtMobileNo" runat="server" CssClass="Smart-css_Text"></asp:TextBox>
            </div>
                            <div class="label">
            </div>
            <div class="textbox">
            </div>


            <div class="label">
            </div>
                            <div class="textbox">
            </div>
            <div class="label">
            </div>
                            <div class="textbox">
            </div>
            <div class="label">

                <asp:Button ID="cmdSearch" CssClass="Smart-css_Button" runat="server" Text="Find Client"/>
            </div>
                                            <div class="textbox">

                <asp:Button ID="cmdCancel" CssClass="Smart-css_Button" runat="server" Text="Cancel" />

            </div>
        </div>
    </fieldset>
</div>

 <div class= "widecolumns">
         <asp:Label ID="lblMessage" runat="server" Text="Message" Visible="False" 
        Font-Bold="True" ForeColor="Red"></asp:Label>
 </div>

<div class= "widecolumns">

    <asp:GridView ID="grdclientslist" runat="server" AutoGenerateColumns="False" 
        CssClass="mGrid" PageSize="5">
    </asp:GridView>

</div>

VB代码

Protected Sub cmdSearch_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdSearch.Click

    Dim clientNumber As String = txtClientNumber.Text
    Dim name As String = txtName.Text
    Dim surname As String = txtSurname.Text
    Dim clientType As String = cboClientType.Text
    Dim clientStatus As String = cboClientStatus.Text
    Dim companyName As String = txtCompanyName.Text
    Dim postCode As String = txtPostcode.Text
    Dim mobileNumber As String = txtMobileNo.Text

    sqlconn.SQLCmd.Parameters.AddWithValue("@clientNumber", clientNumber)
    sqlconn.SQLCmd.Parameters.AddWithValue("@name", name)
    sqlconn.SQLCmd.Parameters.AddWithValue("@surname", surname)
    sqlconn.SQLCmd.Parameters.AddWithValue("@clientType", clientType)
    sqlconn.SQLCmd.Parameters.AddWithValue("@clientStatus", clientStatus)
    sqlconn.SQLCmd.Parameters.AddWithValue("@companyName", companyName)
    sqlconn.SQLCmd.Parameters.AddWithValue("@postCode", postCode)
    sqlconn.SQLCmd.Parameters.AddWithValue("@mobileNumber", mobileNumber)



    sqlconn.ExecQuery("SELECT * FROM epm_ClientDetail WHERE (client_ID LIKE '%' + @clientNumber + '%') OR (client_Name LIKE '%' + @name + '%') OR (client_Surname LIKE '%' + @surname + '%') OR (client_Type LIKE '%' + @clientType + '%') OR (client_Status LIKE '%' + @clientStatus + '%') OR (client_CompanyName LIKE '%' + @companyName + '%') OR (client_StreetPostCode LIKE '%' + @postCode + '%') OR (client_MobileNo LIKE '%' + @mobileNumber + '%')")

    If String.IsNullOrEmpty(sqlconn.Exception) Then

        grdclientslist.DataSource = sqlconn.SQLDS.Tables(0)
    End If

End Sub    

0 个答案:

没有答案