相关疑难解决方法(0)

1514
推荐指数
12
解决办法
146万
查看次数

从与LINQ连接的两个DataTable创建组合的DataTable.C#

我有以下代码填充dataTable1dataTable2两个简单的SQL查询,dataTableSqlJoined从相同的表填充,但连接在一起.

我正在尝试编写一个LINQ查询,它可以创建dataTableLinqJoined就像使用SQL 创建的那样.在下面的示例中,它仅返回dataTable1中的值.

SELECT遇到的问题是在linq查询中放入什么.如何创建包含DataRows中所有列的新DataRow.在运行时之前,我不会知道查询的确切列名/模式.

sqlCommand = new SqlCommand("SELECT ID, A, B FROM Table1", sqlConnection, sqlTransaction);
sqlAdapter = new SqlDataAdapter(sqlCommand);
DataTable dataTable1 = new DataTable();
sqlAdapter.Fill(dataTable1);

sqlCommand = new SqlCommand("SELECT ID, C, D FROM Table2", sqlConnection, sqlTransaction);
sqlAdapter = new SqlDataAdapter(sqlCommand);
DataTable dataTable2 = new DataTable();
sqlAdapter.Fill(dataTable2);

sqlCommand = new SqlCommand("SELECT Table1.ID, A, B, Table2.ID, C, D FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID", sqlConnection, sqlTransaction);
sqlAdapter = new …
Run Code Online (Sandbox Code Playgroud)

c# linq datatable join

22
推荐指数
2
解决办法
6万
查看次数

如何使用公共列在C#中对2个或更多数据表进行完全外部联接

我需要在C#上使用公共列合并/连接数据表.

我知道很多例子以及有关同一主题的问题.我没有找到任何回答我的问题.

以下是我正在使用的代码.

该代码仅允许基于on datatable数据的一个公共列.我需要一个公共列,但需要考虑任何其他"帐户#"可以在另一个数据表中使用并将其添加到公共列中.

此外,代码仅允许合并2个数据表.我需要合并31个数据表,以便为每个月的每一天合并1个数据表.

我有一个月的每一天的数据表,dt_docDAY01,dt_docDAY02,dt_docDAY03等.

每个数据表包含一个帐号"帐号#"和一个存储在一列中的余额,参考当天"DAY01","DAY02"等.

你能告诉我如何更改代码,以便我将包括所有表中的所有帐户.

另外,我将如何合并此代码中的所有数据表,所以我不必运行相同的代码31次.

'string id ="帐号#";

                var tableJoinedDAY02 = dt_docDAY01_GROUPED.Clone(); // create columns from table1

                // add columns from table2 except id
                foreach (DataColumn column in dt_docDAY02_GROUPED.Columns)
                {
                    if (column.ColumnName != id)
                        tableJoinedDAY02.Columns.Add(column.ColumnName, column.DataType);
                }

                tableJoinedDAY02.BeginLoadData();

                foreach (DataRow row1 in dt_docDAY01_GROUPED.Rows)
                {
                    foreach (DataRow row2 in dt_docDAY02_GROUPED.Rows)
                    {
                        if (row1.Field<string>(id) == row2.Field<string>(id))
                        {
                            var list = row1.ItemArray.ToList(); // items from table1

                           // add items from table2 except id
                            foreach (DataColumn column in dt_docDAY02_GROUPED.Columns) …
Run Code Online (Sandbox Code Playgroud)

c# datatable

0
推荐指数
1
解决办法
1834
查看次数

标签 统计

c# ×2

datatable ×2

join ×1

left-join ×1

linq ×1

outer-join ×1

sql-server ×1

t-sql ×1