我正在尝试创建一个搜索页面,该页面将使用多个文本框来构建查询并将结果输出到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