无法从访问文件中查询数据

时间:2014-07-03 17:05:57

标签: c# sql ms-access

我正在尝试从访问文件中查询数据,但它总是不返回任何内容。我已经在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个小时,请任何人给我一些线索。

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上,我会说答案在于连接字符串。