7

I have this query for Ms Access and im using C# and Ole DB commands. It works on Ms Access but when I'm passing the query from C# using OleDB, nothing happened. Anyway here's my code:

SQL query

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# code

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();
}
Gord Thompson
  • 116,920
  • 32
  • 215
  • 418
ViFer
  • 283
  • 1
  • 6
  • 23
  • Nothings happening? Do you get an error message? Have you actually executed the query or just stored it in the `sqlQuery` variable? – Darren Jun 08 '13 at 13:56
  • Whe n I run the query from Ms Access, its executed, but when I used that query to C#, nothing happens. No error. Ok I will edit my code. – ViFer Jun 08 '13 at 14:01
  • can you provide more code? – Darren Jun 08 '13 at 14:02
  • See also: http://stackoverflow.com/questions/19051037/why-is-my-like-query-not-returning-any-records-in-microsoft-access-2013-only/ – StockB Sep 27 '13 at 16:18

2 Answers2

11

Queries performed from within the Microsoft Access application itself normally use * and ? as wildcard characters for the LIKE operator. OleDb connections to an Access database from an external application should use the % and _ wildcard characters instead. (The latter are actually the more commonly-used wildcard characters in other SQL dialects.)

Gord Thompson
  • 116,920
  • 32
  • 215
  • 418
1

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

Microsoft Jet uses partial match (or "wildcard") characters with the Like operator that are different from those used in most SQL dialects. The asterisk (*) character matches zero or more characters and is equivalent to the percent (%) character in ANSI SQL. The other Microsoft Jet partial match characters are the question mark (?), which matches any character in a single field, and the number sign (#), which matches any digit in a single field.

StockB
  • 755
  • 1
  • 13
  • 33