我的 Access 数据库不返回任何带有 xsd 数据集的行

Posted

技术标签:

【中文标题】我的 Access 数据库不返回任何带有 xsd 数据集的行【英文标题】:My Access database does not returns any row with a xsd DataSet 【发布时间】:2011-03-24 17:49:40 【问题描述】:

我必须导入一个 Access 数据库。当我将 mdb 文件复制/粘贴到应用程序中时,它创建了一个相应的 XSD 数据集,所以我继续使用它(我认为它比使用 ODBC 查询要容易得多)。 我尝试使用这些行查询数据库:

        var dsAccess = new data.DATAGESTIONDataSet();
        var RaisonSociales = from rs in dsAccess.Tb_Raison_Soc
                             select rs;
        foreach (var rs in RaisonSociales)
        
            Console.WriteLine(rs.Raison_Soc);
        

很遗憾,select 语句没有返回任何行。

“Linq to SQL 类”和 ADO.Net Entity Framework 不支持 MS Access :(

有什么想法吗? 谢谢

编辑:这是解决方案,感谢@Daniel Hilgart:

        var cn = new OleDbConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ImportSerce.Properties.Settings.DATAGESTIONConnectionString"].ToString());
        var cmd = new OleDbCommand("SELECT * FROM [Tb_Raison_Soc]", cn);
        var da = new OleDbDataAdapter(cmd);
        var tds = new data.DATAGESTIONDataSet();
        da.Fill(tds, tds.Tb_Raison_Soc.TableName);
        var rsMS = from rs in tds.Tb_Raison_Soc
                   select rs;
        foreach (var rs in rsMS)
        
            Console.WriteLine(rs.Raison_Soc);
        

不完全一样漂亮,使用起来有点麻烦,但至少它有效。谢谢!

【问题讨论】:

【参考方案1】:

您需要通过在生成的DataAdapter 上调用Fill 来填充DataSet,并传递您的DataSet 和表名。更多信息可以在这里找到:http://support.microsoft.com/kb/320714

【讨论】:

以上是关于我的 Access 数据库不返回任何带有 xsd 数据集的行的主要内容,如果未能解决你的问题,请参考以下文章