首页 文章

C#-Ms访问查询:通过查询连接行

提问于
浏览
0

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

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

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

1 回答

  • 0

    您可以使用OleDbConnection查询您的ms db,如下所示:

    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

    祝你有美好的一天 !

相关问题