C# Access 模糊查询SQL语句

来源:百度知道 编辑:UC知道 时间:2024/05/09 08:21:06
写了这样一段代码,请看看有没有错误,目的是为了找到 所有以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)

"SELECT * FROM [TABLE] WHERE [日期和时间] Like '2007*'";

应改为

"SELECT * FROM [TABLE] WHERE [日期和时间] Like '2007%'";

注意,由于你用的是oledb驱动程序,在这里 不能用“*”,必须用“%”。如果你用的是DAO访问Access数据库,则必须用“*”。

祝你好运!

string SQLCmd = "SELECT * FROM [TABLE] datediff(day,it1.transaction_date,'2007-07-07')=0 ";
这样你试试吧,如果你要的不是这种效果,你可以查一下这个datediff()函数怎么用;可以解决你要的效果啊!呵呵

最好的找错方法是用.NET设置断点,逐步运行。
很容易的就会看到错误在哪个地方,然后找办法解决。

string SQLCmd = "SELECT * FROM [TABLE] WHERE datediff(yyyy,'2007',[日期和时间])=0

string SQLCmd = "SELECT * FROM [TABLE] WHERE [日期和时间] Like '2007*'";

'2007*'";
可以用!?