我正在尝试从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'。 “}
我的命令是基本的,我不知道它有什么问题。有没有人面对同样的问题?谢谢!
答案 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;