Microsoft Access OleDb连接错误

时间:2013-07-29 15:30:12

标签: c# asp.net ms-access oledb oledbconnection

我正在尝试从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]无效的SQL语句;预期'DELETE','INSERT','PROCEDURE','SELECT'或'UPDATE'。 “}

我的命令是基本的,我不知道它有什么问题。有没有人面对同样的问题?谢谢!

3 个答案:

答案 0 :(得分:0)

试试这个......

String command = "SELECT * FROM myTable";

conn.Open();

System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter(command, conn);
adapter.Fill(dsImportedData);

答案 1 :(得分:0)

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

另一个想法是删除远程复杂性并尝试使用最简单的工作代码,可能使用新的访问数据库,以便开始缩小导致问题的原因。

答案 2 :(得分:0)

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

command.CommandType = System.Data.CommandType.StoredProcedure;