GridView Fitch所有数据,不管我的查询条件
本文关键字:不管 我的 查询 条件 数据 Fitch GridView | 更新日期: 2023-09-27 18:12:28
当我创建条件时,我通过SQLDATASOURCE查询生成器测试了asp.net网页,结果就像我想要的一样,但是当我使用asp.net页面搜索数据时,所有结果都显示不考虑我的条件,任何人都可以解释为什么??我的代码是这样的
sql查询
SELECT IQCRM_NUM,
Full_name,
Mother_Name,
Date_of_Birth,
Province_of_birth,
Job
FROM [Criminal Main Table]
WHERE (Full_name LIKE N'%' + @Full_name + N'%') OR
(Mother_Name LIKE N'%' + @Mother_Name + N'%') OR
(Date_of_Birth LIKE N'%' + @Date_of_Birth + N'%')
我的ASP。. NET代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication2.WebForm1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.style1
{
width: 30%;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Search" />
<br />
<table class="style1">
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</td>
<td>
<asp:TextBox ID="TextBox1_NAM" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
</td>
<td>
<asp:TextBox ID="TextBox2_Mother" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
</td>
<td>
<asp:TextBox ID="TextBox3_Birth" runat="server"></asp:TextBox>
</td>
</tr>
</table>
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="IQCRM_NUM"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="IQCRM_NUM" HeaderText="IQCRM_NUM" ReadOnly="True" SortExpression="IQCRM_NUM" />
<asp:BoundField DataField="Full_name" HeaderText="Full_name" SortExpression="Full_name" />
<asp:BoundField DataField="Mother_Name" HeaderText="Mother_Name" SortExpression="Mother_Name" />
<asp:BoundField DataField="Date_of_Birth" HeaderText="Date_of_Birth" SortExpression="Date_of_Birth" />
<asp:BoundField DataField="Province_of_birth" HeaderText="Province_of_birth" SortExpression="Province_of_birth" />
<asp:BoundField DataField="Job" HeaderText="Job" SortExpression="Job" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:CriminalDBBefore2003ConnectionString %>"
SelectCommand="SELECT IQCRM_NUM, Full_name, Mother_Name, Date_of_Birth, Province_of_birth, Job FROM [Criminal Main Table] WHERE (Full_name LIKE N'%' + @Full_name + N'%') OR (Mother_Name LIKE N'%' + @Mother_Name + N'%') OR (Date_of_Birth LIKE N'%' + @Date_of_Birth + N'%')">
<SelectParameters>
<asp:ControlParameter ControlID="TextBox1_NAM" ConvertEmptyStringToNull="False" Name="Full_name"
PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="TextBox2_Mother" ConvertEmptyStringToNull="False"
Name="Mother_Name" PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="TextBox3_Birth" ConvertEmptyStringToNull="False"
Name="Date_of_Birth" PropertyName="Text" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
</div>
</form>
</body>
</html>
您可以使用FilterParameters
代替SelectParameters
,并添加FilterExpression
,就像这个示例。
SelectCommand -这里我们需要设置没有任何WHERE子句或过滤器的默认SQL查询。
FilterExpression—这里我们需要用占位符{0}设置SQL查询的过滤器部分。占位符{0}将被ControlParameter的值所取代,即TextBox的Text
FilterParameters—这里我们指定FilterExpression
使用的控制参数<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:CriminalDBBefore2003ConnectionString %>"
SelectCommand="SELECT IQCRM_NUM, Full_name, Mother_Name, Date_of_Birth, Province_of_birth, Job FROM Criminal Main Table" FilterExpression="Full_name LIKE '{0}%' OR Mother_Name LIKE '{1}%' OR Date_of_Birth LIKE '{2}%'">
<FilterParameters>
<asp:ControlParameter ControlID="TextBox1_NAM" ConvertEmptyStringToNull="False" Name="Full_name"
PropertyName="Text" Type="String"/>
<asp:ControlParameter ControlID="TextBox2_Mother" ConvertEmptyStringToNull="False"
Name="Mother_Name" PropertyName="Text" Type="String"/>
<asp:ControlParameter ControlID="TextBox3_Birth" ConvertEmptyStringToNull="False"
Name="Date_of_Birth" PropertyName="Text" Type="String"/>
</FilterParameters>