MS Access类似于c#的SQL查询

本文关键字:SQL 查询 Access 类似于 MS | 更新日期: 2023-09-27 18:17:44

我使用c#和Ole DB命令对Ms Access和im进行此查询。它适用于Ms Access,但当我使用OleDB从c#传递查询时,没有发生任何事情。总之,这是我的代码:

SQL查询

SELECT * FROM tblIssue WHERE  id LIKE '*2*' AND dateChecque LIKE '**'AND +
issueTo LIKE '**' AND byTheName LIKE '**' AND bankName LIKE '**' AND accountNo LIKE '**' +
AND checqueNo LIKE '**' AND amount LIKE '**' AND being LIKE '**'   AND whoDeleted LIKE '**' +
AND whyDeleted LIKE '**' AND dateCreated LIKE '**';

c#代码
try
{
    DataTable newDt = new DataTable();
    OleDbDataAdapter newSda = new OleDbDataAdapter(sqlQuery , conn);
    newSda.Fill(newDt);
    if (newDt.Rows.Count > 0)
    {
        dataGridView1.DataSource = newDt.DefaultView;
        _hasData = true;
    }
    else
    {
        _hasData = false;
    }
}
catch (Exception error)
{
    MessageBox.Show(error.ToString()); conn.Close();
}

MS Access类似于c#的SQL查询

在Microsoft Access应用程序内部执行的查询通常使用*?作为LIKE操作符的通配符。从外部应用程序连接到Access数据库的OleDb连接应该使用%_通配符。(后者实际上是其他SQL方言中更常用的通配符)

From http://technet.microsoft.com/en-us/library/cc966377.aspx:

Microsoft Jet使用带有Like操作符的部分匹配(或"通配符")字符,与大多数SQL方言中使用的操作符不同。星号(*)字符匹配零个或多个字符,相当于ANSI SQL中的百分比(%)字符。其他Microsoft Jet部分匹配字符是问号(?),它匹配单个字段中的任何字符,以及数字符号(#),它匹配单个字段中的任何数字。