C# 无法从access文件查询数据
我试图从access文件中查询数据,但它总是不返回任何内容。我已经在MicrosoftAccess中直接复制了查询字符串和查询,它返回的值很好。这是我的源代码,请看一下C# 无法从access文件查询数据,c#,sql,ms-access,C#,Sql,Ms Access,我试图从access文件中查询数据,但它总是不返回任何内容。我已经在MicrosoftAccess中直接复制了查询字符串和查询,它返回的值很好。这是我的源代码,请看一下 public DataTable queryDB(string querystr) { DataTable res; string conStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\test.mdb;Persist Securi
public DataTable queryDB(string querystr) {
DataTable res;
string conStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\test.mdb;Persist Security Info=False;";
OleDbConnection con = new OleDbConnection(conStr);
con.Open();
OleDbCommand cmd = new OleDbCommand(querystr, con);
OleDbDataReader reader = cmd.ExecuteReader();
if (reader.Read()) {
res = new DataTable();
res.Load(reader);
}
else
res = null;
reader.Close();
con.Close();
return res;
}
查询只是“SELECT*fromUserInfo;”。我已经花了两个小时在这上面了,请任何人给我一些线索 这在Windows 8上吗?我见过奇怪的行为,对Access数据库的查询只返回它应该返回的一些记录。对我们来说,它只返回了数千条记录中的34条左右 它没有其他错误吗
如果它没有其他错误并且不在Windows 8上,我会说答案在于连接字符串。获取数据表的另一种方法:
public DataTable queryDB(string querystr) {
DataTable res = new DataTable();
string conStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\test.mdb;Persist Security Info=False;";
OleDbConnection con = new OleDbConnection(conStr);
con.Open();
OleDbDataAdapter= new OleDbDataAdapter(querystr, con);
oDataAdapter.Fill(res);
oDataAdapter.Dispose();
con.Close();
return res;
}
不要打电话给reader.Read(),这很奇怪。我只是尝试重新启动系统,问题就解决了。我还是不知道会发生什么。