2

该声明:

SELECT [ToWhom] FROM [myChecks] WHERE [ToWhom] like '*e*' 

在 Access 中工作正常,但是当我从 C# 运行它时,我会返回并清空数据集。这是代码:

string connectionstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Checkbook.accdb";
OleDbConnection Conn = new OleDbConnection();
Conn.ConnectionString = connectionstring;
OleDbCommand myCommand = Conn.CreateCommand();
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter();
DataSet myDataset = new DataSet();
DataTable EmptyDataTable = new DataTable();
myCommand.CommandText = SQL;
myDataAdapter.SelectCommand = myCommand;
Conn.Open();
try
{
//This part does not throw an error it just return an empty Dataset
myDataAdapter.Fill(myDataset);
Conn.Close();
return myDataset.Tables[0];
}
catch(SyntaxErrorException e)
{
MessageBox.Show(e.Message, "Database Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
Conn.Close();
 return EmptyDataTable;
}         

任何帮助,将不胜感激。

4

1 回答 1

6

在具有上述连接的 C# 中,使用百分比 (%) 作为通配符,而不是星号 (*)

SELECT [ToWhom] FROM [myChecks] WHERE [ToWhom] like '%e%' 

在 MS Access 内部,在查询设计窗口中,当未设置 ANSI 92 选项(即通常设置)时,通配符为星号 (*),Access 外部通常为百分比 (%)。

于 2012-08-05T18:12:13.873 回答