Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法从access文件查询数据_C#_Sql_Ms Access - Fatal编程技术网

C# 无法从access文件查询数据

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

我试图从access文件中查询数据,但它总是不返回任何内容。我已经在MicrosoftAccess中直接复制了查询字符串和查询,它返回的值很好。这是我的源代码,请看一下

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(),这很奇怪。我只是尝试重新启动系统,问题就解决了。我还是不知道会发生什么。