在VB.NET 2010 web表單應用程序中。我希望用戶能夠根據是否選擇名字,姓氏或中間名來選擇各種客戶 。這個想法是讓用戶選擇參數中的一個,兩個和/或三個 並點擊搜索關鍵字。vb 2010 web表單sql數據源不使用所有參數
問題是結果只返回基於一個參數的數據。如果選擇了多個參數的數據,則選擇 條件將被忽略。 當我在sql server management studio中運行sql時,我得到了我想要的結果。
因此,你能告訴我我能做些什麼來解決這個問題嗎?
有錯誤的代碼列在下面;
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Support.aspx.vb" Inherits="letters_Support" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MPHead" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MPContent" Runat="Server">
<asp:Panel runat="server" ID="pnlSupport">
<h3 style="text-align: center; border-style:none; ">Support Page</h3>
<table style="width: 100%;">
<tr>
<td>
Last Name:
</td>
<td>
<asp:TextBox ID="lname" runat="server"></asp:TextBox>
</td>
<td>
First Name:
</td>
<td>
<asp:TextBox ID="fname" runat="server"></asp:TextBox>
</td>
<td>
Middle Name:
</td>
<td>
<asp:TextBox ID="mname" runat="server"></asp:TextBox>
</td>
<td>
Search by Name:
</td>
<td>
<asp:Button ID="btnSearch" runat="server" Text="Search" />
</td>
</tr>
</table>
<br />
<asp:GridView ID="GridViewSupport" runat="server" AutoGenerateColumns="False"
PageSize="25"
GridLines="Both"
EnableSortinAndPagingCallbacks="true"
HeaderStyle-CssClass="ui-widget-header"
PagerStyle-CssClass="ui-widget ui-widget-content"
Width="100%"
EmptyDataText="No records were selected."
DataSourceID="sqlTEST" AllowPaging="True" AllowSorting="True" >
<Columns>
<asp:BoundField DataField="lastName" HeaderText="Last Name" SortExpression="lastName" ItemStyle-HorizontalAlign="Center" ItemStyle-CssClass="ui-widget-content" ControlStyle-CssClass="text required ui-widget-content ui-corner-all"/>
<asp:BoundField DataField="firstName" HeaderText="First Name" SortExpression="firstName" ItemStyle-HorizontalAlign="Center" ItemStyle-CssClass="ui-widget-content" ControlStyle-CssClass="text required ui-widget-content ui-corner-all"/>
<asp:BoundField DataField="middleName" HeaderText="Middle Name" SortExpression="middleName" ItemStyle-HorizontalAlign="Center" ItemStyle-CssClass="ui-widget-content" ControlStyle-CssClass="text required ui-widget-content ui-corner-all"/>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="sqlTEST" runat="server"
ConnectionString="<%$ ConnectionStrings:sqlTEST %>" SelectCommand="SELECT [lastName]
,[firstName]
,[middleName]
,[suffix]
,a.[userid]
from [TEST].[dbo].[Identity]
where ([lastName] like '%' + @lname + '%' and
[firstName] like'%' + @fname + '%' and
[middleName] like'%' + @mname + '%')
or ([lastName] like '%' + @lname + '%' and
[firstName] like'%' + @fname + '%' and
@mname is null)
or ([lastName] like '%' + @lname + '%' and
[middleName] like'%' + @mname + '%' and
@fname is null)
or ([firstName] like '%' + @fname + '%' and
[middleName] like'%' + @mname + '%' and
@lname is null)
or ([lastName] like '%' + @lname + '%' and
@fname is null and
@mname is null)
or (@lname is null and
[firstName] like'%' + @fname + '%' and
@mname is null)
or (@lname is null and
@fname is null and
[middleName] like'%' + @mname + '%')
or (@fname is null and @lname is null and @mname is null)
order by [lastName], [firstName], [middleName]"
CancelSelectOnNullParameter="false" >
<SelectParameters>
<asp:ControlParameter ControlID="lname" Name="lname" PropertyName="Text" ConvertEmptyStringToNull="true" />
<asp:ControlParameter ControlID="fname" Name="fname" PropertyName="Text" ConvertEmptyStringToNull="true" />
<asp:ControlParameter ControlID="mname" Name="mname" PropertyName="Text" ConvertEmptyStringToNull="true" />
</SelectParameters>
</asp:SqlDataSource>
</asp:Panel>
</asp:Content>
請問您是否可以澄清「如果選擇了多個參數的數據,選擇標準將被忽略」?這是否意味着:沒有記錄被返回?或所有記錄都返回?或返回錯誤的記錄子集? – pete 2014-12-09 18:27:06