1

我正在尝试从我的 ASP.NET 应用程序远程访问 Access 2003 数据库。我的代码是:

DataSet dsImportedData = new DataSet();
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString = @"Provider=MS Remote;Remote Provider=Microsoft.Jet.OLEDB.4.0;Remote Server=http://myIp;Data source=C:\myDatabase.mdb;";
try
{
  System.Data.OleDb.OleDbCommand command = conn.CreateCommand();
  command.CommandText = "SELECT * FROM myTable";
  conn.Open();
  System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter(command);
  adapter.Fill(dsImportedData);
}
catch (Exception ex)
{
}
finally
{
  conn.Close();
}

但是,我总是收到一个异常说明:{“[Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'."}

我的命令是基本的,我不知道它可能有什么问题。有没有人遇到过同样的问题?谢谢!

4

3 回答 3

0

如果您将命令类型设置为 Stores 过程,它对我有用。

command.CommandType = System.Data.CommandType.StoredProcedure;
于 2015-04-10T00:16:43.933 回答
0

尝试这个 ....

String command = "SELECT * FROM myTable";

conn.Open();

System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter(command, conn);
adapter.Fill(dsImportedData);
于 2013-07-29T15:43:55.387 回答
0

显然该错误可能是由于指定的表不存在引起的。只是一个想法...

另一个想法是消除远程处理的复杂性并尝试使用最简单的工作代码,可能使用新的访问数据库来开始缩小导致问题的范围。

于 2013-07-29T18:30:27.630 回答