【问题标题】:C# -Ms Access Query: Concatenating Rows through a queryC# -Ms 访问查询:通过查询连接行
【发布时间】:2016-10-15 07:45:27
【问题描述】:

我需要连接多行,这个需求已经在这个线程Ms Access Query: Concatenating Rows through a query 中讨论和回答了

在上面的线程中,指定的需求只能通过VBA函数来实现..但我想通过C#函数来实现。是否有可能通过 ms 访问查询连接多行并且该查询应该从 C# 执行。

我想通过 MS Access 查询来实现这个完整的功能,就像 SQL 查询的 For XML PATH 一样。

【问题讨论】:

标签: c# ms-access ms-access-2010


【解决方案1】:

您可以使用这样的 OleDbConnection 查询您的 ms 数据库:

        var con = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;");

        string stbQuery = "SELECT * FROM [Table]";
        OleDbDataAdapter adp = new OleDbDataAdapter(stbQuery, con);
        DataSet dsXLS = new DataSet();
        adp.Fill(dsXLS);

        var groups = dsXLS.Tables[0].Rows.OfType<DataRow>().GroupBy(r => r.ItemArray[0]);
        System.Data.DataTable t = new System.Data.DataTable();
        t.Columns.Add("Key");
        t.Columns.Add("Value");

        foreach (var grp in groups)
        {
            t.Rows.Add(grp.Key, grp.ToList().Select(r => r.ItemArray[1]).Aggregate((a, b) => a + "," + b));
        }

        Console.ReadLine();

msdn 教程:https://msdn.microsoft.com/en-us/library/aa288452(v=vs.71).aspx

祝你有美好的一天!

【讨论】:

  • 嗨@Quentin Roger,我想通过MS Access 查询来实现这个完整的功能,就像SQL 查询的For XML PATH 一样。
  • 嗨@kombsh,我编辑了我的答案,向您展示如何使用OleDbConnection查询您的xml文件
  • 嗨@Quentin Roger,感谢您的回答.. 但我需要从 MS Access 数据库中的表中查询数据,而不是从 Excel 文件中。
  • 我的错,对不起。使用 OleDbConnection 连接到 MS Access db 的方式相同。连接字符串应该是这样的 ` var conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\emp.mdb; ");`
猜你喜欢
  • 2011-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-21
  • 1970-01-01
  • 1970-01-01
  • 2016-08-06
  • 2016-01-18
相关资源
最近更新 更多