我需要连接多个行,这个需求已经在这个帖子中讨论和回答Ms Access Query: Concatenating Rows through a query
在上面的线程中,指定的需求只能通过VBA函数实现。但我想通过C#函数实现它。是否有可能通过ms访问查询连接多个行,并且该查询应该从C#执行。
我想通过MS Access查询实现这个完整的功能,就像SQL查询的XML PATH一样。
答案 0 :(得分: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
祝你有美好的一天!