当前位置: 首页 > 编程笔记 >

C# 实现Table的Merge,Copy和Clone

晋安国
2023-03-14
本文向大家介绍C# 实现Table的Merge,Copy和Clone,包括了C# 实现Table的Merge,Copy和Clone的使用技巧和注意事项,需要的朋友参考一下

C#实现的对两个Table进行Merge,两表必须存在至少一个公共栏位作为连接项,否则连接就失去了意义。如下是对两个table进行Merge的详细代码:

private void button1_Click(object sender, EventArgs e)//Button点击触发事件
    {
      #region Table的Merge
      DataTable dt = new DataTable();

      DataTable dt1 = new DataTable();//创建Table1
      dt1.Columns.Add("ID", typeof(string));
      dt1.Columns.Add("NAME",typeof(string));
      dt1.Columns.Add("AGE", typeof(int));
      dt1.Columns.Add("SEX", typeof(string));

      dt1.PrimaryKey = new DataColumn[] { dt1.Columns["ID"]};
      for (int i = 0; i < 5; i++)
      {
        DataRow dr = dt1.NewRow();
        dr["ID"] = "00" + i.ToString();
        dr["NAME"] = "00-" + i.ToString();
        dr["AGE"] = 15 + i;
        dr["SEX"] = "M";
        dt1.Rows.Add(dr);

      }
      dt = dt1;

      DataTable dt2 = new DataTable();//创建Table2
      dt2.Columns.Add("ID", typeof(string));
      dt2.Columns.Add("NAME", typeof(string));
      dt2.Columns.Add("Course",typeof(string));
      dt2.Columns.Add("Score",typeof(int));

      dt2.PrimaryKey = new DataColumn[] { dt2.Columns["ID"] };
      for (int i = 0; i < 5; i++)
      {
        DataRow dr = dt2.NewRow();
        dr["ID"] = "00" + i.ToString();
        dr["NAME"] = "00-" + i.ToString();
        dr["Course"] ="C#";
        dr["Score"] = i + 80;
        dt2.Rows.Add(dr);
      }
      dt = dt2;
      dt1.Merge(dt2);

      //Copy
      var table1 = dt1.Copy();//Copy,复制表的结构以及数据
      //添加新的一行
      DataRow dr1 = table1.NewRow();
      dr1["ID"] = "005";
      dr1["NAME"] = "00-5";
      dr1["AGE"] = 15;
      dr1["SEX"] = "F";
      table1.Rows.InsertAt(dr1,2);//表的指定位置插入新增加的一行   
       
      table1.Columns.Add(new DataColumn() { ColumnName = "Memo", DataType = typeof(string) });//默認插入到最後一列
      table1.Columns["Memo"].SetOrdinal(0);//把插入的列移动到第一行

      int memoIndex = table1.Columns.IndexOf("Memo");//获取列的位置信息
      var isContainName = table1.Columns.Contains("NAME");//判断table中是否存在某列

      List<string> columnsNameList = new List<string>();//遍历获取table的所有列名
      foreach (DataColumn col in table1.Columns)
      {
        columnsNameList.Add(col.ColumnName);
      }

      table1.Columns.RemoveAt(memoIndex);//通过列名的索引进行移除
      table1.Columns.RemoveAt(2);//通过列名的索引进行移除

      table1.Columns.Remove("SEX");//通过列名进行移除,建议使后者
      

      string[] name = new string[table1.Rows.Count];//方法一:对表中的数据进行遍历输出
      string[] id = new string[table1.Rows.Count];
      for (int i = 0; i < table1.Rows.Count; i++)
      {
        name[i] = table1.Rows[i]["NAME"].ToString();
        id[i] = table1.Rows[i]["ID"].ToString();
      }
           
      table1.Clear();//清空表中的数据

      //Clone
      var table2 = dt2.Clone();//Clone,复制表的结构、约束信息

      #endregion

    }

以上就是C# 实现Table的Merge,Copy和Clone的详细内容,更多关于c# table Merge的资料请关注小牛知识库其它相关文章!

 类似资料:
  • 本文向大家介绍C# 实现TXT文档转Table的示例代码,包括了C# 实现TXT文档转Table的示例代码的使用技巧和注意事项,需要的朋友参考一下 代码: 以上就是C# 实现TXT文档转Table的示例代码的详细内容,更多关于c# TXT文档转Table的资料请关注呐喊教程其它相关文章!

  • 本文向大家介绍javascript实现Table排序的方法,包括了javascript实现Table排序的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript实现Table排序的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的javascript程序设计有所帮助。

  • 我们需要从RSA密钥中获取模和指数。我使用以下方法创建了我的pubilc密钥。请让我知道我们如何从中提取模数和指数部分。我已经读过这篇文章了。 //现在我想从这个公钥中得到模和指数 编辑:-我也已经发送Base64字符串到服务器,但在那里,我们面临着一个相当大的问题,找到公钥ref从Base64字符串 C#代码段 现在我们需要无法解析的公钥组件。任何帮助都很好

  • 问题内容: I need clarification on the differences between deep copy, shallow copy, and clone in Java 问题答案: 在Java上下文中,我们首先需要在“复制值”和“复制对象”之间进行区分。 简而言之,对类型为引用类型的变量的引用分配是“复制值”,其中该值是对象引用。要复制对象,需要new显式地或在幕后使用某种

  • 本文向大家介绍Angualrjs和bootstrap相结合实现数据表格table,包括了Angualrjs和bootstrap相结合实现数据表格table的使用技巧和注意事项,需要的朋友参考一下 AngularJS的数据表格 需要使用angualarjs、bootstrap、dirPagination.js 效果图: 1.html部分 2.angularjsTable.js部分 3.json数据部

  • 我们用简单的实例来讲解topic分支和merge分支的操作方法。 例如,在开发功能的topic分支操作途中,需要修改bug。 这时,merge分支还是处于开发功能之前的状态。在这里新建修改错误用的主题分支,就可以从开发功能的作业独立出来,以便开始新的工作。 完成bug修正的工作后,把分支导入到原本的merge分支后就可以公开了。 回到原本的分支继续进行开发功能的操作。 但是,如果要继续进行操作,你

  • 本文向大家介绍C/C++ 实现递归和栈逆序字符串的实例,包括了C/C++ 实现递归和栈逆序字符串的实例的使用技巧和注意事项,需要的朋友参考一下 C/C++ 实现递归和栈逆序字符串的实例 递归函数调用模型 逆序方法 调用 以上就是C/C++ 实现递归和栈逆序字符串的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 本文向大家介绍bootstrap-table组合表头的实现方法,包括了bootstrap-table组合表头的实现方法的使用技巧和注意事项,需要的朋友参考一下 最近需要做一个表格样式,需要组合表头,现在把做出来的分享给大家,  1、效果图 2、html代码 3、javascript代码 columns中存放三组数组: 第一组数组存放的是表的标题信息,其中的colspan为整个表所有的列数 第二组存