DataTable的Merge使用
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { private static void PrintValues(DataTable table) { string label = table.TableName; Console.WriteLine("TableName: " + table.TableName); foreach (DataColumn column in table.Columns) { Console.Write("\t " + column.ColumnName); } Console.WriteLine(); foreach (DataRow row in table.Rows) { foreach (DataColumn column in table.Columns) { Console.Write("\t |{0}|", row[column]); } Console.WriteLine(); } } static void Main(string[] args) { DataTable dtWs = new DataTable("dtWs"); //DataColumn dcWsWId = new DataColumn("WID", Type.GetType("System.Int32"));//“System.Data.DataException”类型的未经处理的异常在 System.Data.dll 中发生其他信息: < target >.WID 和<source>.WID 擁有衝突的屬性: DataType 屬性不符。 DataColumn dcWsWId = new DataColumn("WID", Type.GetType("System.String")); DataColumn dcWsFId = new DataColumn("FID", Type.GetType("System.String")); DataColumn dcBNId = new DataColumn("ADD", Type.GetType("System.String")); dtWs.Columns.Add(dcWsWId); dtWs.Columns.Add(dcWsFId); dtWs.Columns.Add(dcBNId); dtWs.PrimaryKey = new DataColumn[] { dcWsWId, dcWsFId }; for (int i = 0; i < 5; i++) { DataRow drNew = dtWs.NewRow(); drNew["WID"] = i; drNew["FID"] = ""; drNew["ADD"] = "BBBB" + i; dtWs.Rows.Add(drNew); } PrintValues(dtWs); DataTable dtQry = new DataTable("dtQry"); DataColumn dcWId = new DataColumn("WID", Type.GetType("System.String")); DataColumn dcFId = new DataColumn("FID", Type.GetType("System.String")); DataColumn dcNId = new DataColumn("Name", Type.GetType("System.String")); dtQry.Columns.Add(dcWId); dtQry.Columns.Add(dcFId); dtQry.Columns.Add(dcNId); dtQry.PrimaryKey = new DataColumn[] { dcWId, dcFId }; for (int i = 3; i < 8; i++) { DataRow drNew = dtQry.NewRow(); drNew["WID"] = i; drNew["FID"] = ""; drNew["Name"] = "AAAA" + i; dtQry.Rows.Add(drNew); } PrintValues(dtQry); dtQry.Merge(dtWs, true, MissingSchemaAction.AddWithKey); PrintValues(dtQry); dtQry.Merge(dtWs, false, MissingSchemaAction.AddWithKey); PrintValues(dtQry); Console.Read(); } } }
執行結果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构