C# Access 模糊查询SQL语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# Access 模糊查询SQL语句相关的知识,希望对你有一定的参考价值。
写了这样一段代码,请看看有没有错误,目的是为了找到 所有以2007开头的日期,为什么输出到ListView里是空的…… //执行筛选操作---------- Database.Connect connect = new Database.Connect(); OleDbConnection ODC = new OleDbConnection(); ODC.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + @"\" + Settings.fileName + ";Jet Oledb:database password = " + Settings.password; ODC.Open(); DataSet DS = new DataSet(); if (comboBox1.SelectedIndex==0) string SQLCmd = "SELECT * FROM [TABLE] WHERE [日期和时间] Like '2007*'"; OleDbDataAdapter ODDA = new OleDbDataAdapter(SQLCmd,ODC); ODDA.Fill(DS,"Table"); int Count = DS.Tables["Table"].Rows.Count; //获得行数 for (int i = 0; i < Count; ++i) string[] tempData = DS.Tables["Table"].Rows[i][1].ToString(),DS.Tables["Table"].Rows[i][2].ToString(), DS.Tables["Table"].Rows[i][3].ToString(),DS.Tables["Table"].Rows[i][4].ToString(), DS.Tables["Table"].Rows[i][5].ToString(),DS.Tables["Table"].Rows[i][6].ToString(); ListViewItem item = new ListViewItem(tempData); queryresult.listView1.Items.AddRange(new ListViewItem[] item ); ODC.Close();
参考技术A "SELECT*
FROM
[TABLE]
WHERE
[日期和时间]
Like
'2007*'";
应改为
"SELECT
*
FROM
[TABLE]
WHERE
[日期和时间]
Like
'2007%'";
注意,由于你用的是oledb驱动程序,在这里
不能用“*”,必须用“%”。如果你用的是DAO访问Access数据库,则必须用“*”。
祝你好运!
参数化查询模糊查询
1.参数化查询模糊查询
sql语句:
create proc procegDataAp
(
@UserName nvarchar(50)
)
as
select * from users where userName=@UserName
给参数赋值
new SqlParameter("@UserName","%"+TxtsUserName.Text.Trim()+"%")
1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="egDataAp.aspx.cs" Inherits="_20160520.egDataAp" %> 2 3 <!DOCTYPE html> 4 5 <html xmlns="http://www.w3.org/1999/xhtml"> 6 <head runat="server"> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 8 <title></title> 9 </head> 10 <body> 11 <form id="form1" runat="server"> 12 <div> 13 <table> 14 <tr> 15 <td>用户名:</td> 16 <td> 17 <asp:TextBox ID="TxtsUserName" runat="server"></asp:TextBox> 18 <asp:Button ID="BtnsSel" runat="server" Text="查询" /> 19 </td> 20 </tr> 21 </table> 22 <asp:GridView ID="IdGridView" runat="server" AutoGenerateColumns="False"> 23 <Columns> 24 <asp:BoundField DataField="id" HeaderText="ID" /> 25 <asp:BoundField DataField="username" HeaderText="用户名" /> 26 <asp:BoundField DataField="PWD" HeaderText="密码" /> 27 <asp:BoundField DataField="loginname" HeaderText="姓名" /> 28 <asp:BoundField DataField="qq" HeaderText="QQ" /> 29 <asp:BoundField DataField="classname" HeaderText="班级" /> 30 <asp:TemplateField HeaderText="详情"> 31 <ItemTemplate> 32 <a href="UserInfo.aspx?id=<%#Eval("ID") %>" target="_blank">详情</a> 33 <%--<a href=\'UserInfo.aspx?userid=<%#Eval("UserId") %>\' target="_blank">详情</a 34 <%-- <a href="one.aspx?">详情</a>--%> 35 </ItemTemplate> 36 </asp:TemplateField> 37 </Columns> 38 </asp:GridView> 39 </div> 40 </form> 41 </body> 42 </html>
using System; using System.Collections.Generic; using System.Configuration; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; namespace _20160520 { public partial class egDataAp : System.Web.UI.Page { private string conStr = ConfigurationManager.ConnectionStrings["mySchool"].ToString(); SqlConnection con = null;//相当于是电话 SqlCommand cmd = null;//执行sql语句 SqlDataReader dr = null;//用于储存查询结果 //首先创建一个DataSet DataSet ds = new DataSet(); protected void Page_Load(object sender, EventArgs e) { //用数据适配器的方式做一个查询 con = new SqlConnection(conStr); //string ssql = "select ID,username,PWD,loginname,qq,classname from Users"; //以上是之前的写法,这里我们直接传一个存储过程名 using (cmd = new SqlCommand("procegDataAp", con)) { //指定一个sqlcommand的CommandType(默认情况下等于CommandType.text)为CommandType的存储过程名 cmd.CommandType = CommandType.StoredProcedure; List<SqlParameter> para = new List<SqlParameter>() { //通过sqlParameter数组把它加到cmd里面去,需指定名称,类型,值 //模糊查询 new SqlParameter("@UserName","%"+TxtsUserName.Text.Trim()+"%") }; foreach(var a in para) { cmd.Parameters.Add(a); } //创建一个DataAdapter,传一个cmd SqlDataAdapter da = new SqlDataAdapter(cmd); //应用数据适配器进行填充,填充到ds里 da.Fill(ds); //指定一下数据源,.Tables[0]添加第一个table表 //IdGridView.DataSource = ds; IdGridView.DataSource = ds.Tables[0]; IdGridView.DataBind(); } } } }
以上是关于C# Access 模糊查询SQL语句的主要内容,如果未能解决你的问题,请参考以下文章