LEFT JOIN
和之间有什么区别LEFT OUTER JOIN
?
我有以下代码填充dataTable1
和dataTable2
两个简单的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#上使用公共列合并/连接数据表.
我知道很多例子以及有关同一主题的问题.我没有找到任何回答我的问题.
以下是我正在使用的代码.
该代码仅允许基于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)