我正在尝试从访问文件中查询数据,但它总是不返回任何内容。我已经在Microsoft Access中直接复制查询字符串和查询,它返回值就好了。这是我的源代码,请看一下。
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 * FROM USERINFO;”。我已经花了2个小时,请任何人给我一些线索。
答案 0 :(得分:2)
获取DataTable的另一种方法:
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;
}
答案 1 :(得分:0)
这是在Windows 8上吗?我发现奇怪的行为,对Access数据库的查询只返回它应该的一些记录。对我们来说,它只返回了数以万计的34个左右的记录。
没有其他错误?
如果它没有其他错误并且它不在Windows 8上,我会说答案在于连接字符串。