【问题标题】:MS Access SQL LIKE query from C#来自 C# 的 MS Access SQL LIKE 查询
【发布时间】:2013-06-04 17:04:08
【问题描述】:

我使用 C# 和 Ole DB 命令查询 Ms Access 和我。它适用于 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();
}

【问题讨论】:

  • 什么都没有发生?您收到错误消息吗?您是否实际执行了查询或只是将其存储在 sqlQuery 变量中?
  • 当我从 Ms Access 运行查询时,它会执行,但是当我将该查询用于 C# 时,什么也没有发生。没有错误。好的,我将编辑我的代码。
  • 你能提供更多代码吗?
  • @DownVoter - 为什么要对我的帖子投反对票??

标签: c# ms-access ms-access-2010 sql-like


【解决方案1】:

从 Microsoft Access 应用程序本身执行的查询通常使用*? 作为LIKE 运算符的通配符。从外部应用程序到 Access 数据库的 OleDb 连接应改用 %_ 通配符。 (后者其实是其他SQL方言中比较常用的通配符。)

【讨论】:

  • 谢谢!现在它的工作。实际上我以前使用 % 但在对访问进行一些研究后将其更改为 *。
  • 对不起,我不能投票,我的声誉只有 8 分。有人对我的问题投了反对票。 :(
  • 哇!怎么会?呵呵!投票结束! :)
  • 这里还有一些通配符参考。 office.microsoft.com/en-us/access-help/…
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多