Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将datatable列和值复制到另一个datatable_C#_Datatable - Fatal编程技术网

C# 如何将datatable列和值复制到另一个datatable

C# 如何将datatable列和值复制到另一个datatable,c#,datatable,C#,Datatable,我有一个数据表dt1,它有4列(姓名、地址、联系人、标记),其中有0行,另一个数据表dt2有2列(StdName、StdAddress),其中只有几行 当我在做类似dt1=dt2.copy()的事情时;那么我的dt1就要换了。这是我不想要的 我想将dt2列和值复制到dt1。因此,在我的dt1的列(名称和地址)中,将填充stdName和StdAddress值 请有人帮我怎么做。试试这个 DataTable dtEmp = new DataTable("EMP"); dtEmp.C

我有一个数据表dt1,它有4列(姓名、地址、联系人、标记),其中有0行,另一个数据表dt2有2列(StdName、StdAddress),其中只有几行

当我在做类似dt1=dt2.copy()的事情时;那么我的dt1就要换了。这是我不想要的

我想将dt2列和值复制到dt1。因此,在我的dt1的列(名称和地址)中,将填充stdName和StdAddress值

请有人帮我怎么做。

试试这个

 DataTable dtEmp = new DataTable("EMP");
        dtEmp.Columns.Add("Name", typeof(String));
        dtEmp.Columns.Add("Address", typeof(String));
        dtEmp.Columns.Add("Contact", typeof(String));
        dtEmp.Columns.Add("Marks", typeof(String));


        DataTable dtStd = new DataTable("STD");
        dtStd.Columns.Add("StdName", typeof(String));
        dtStd.Columns.Add("StdAddress", typeof(String));

        foreach (DataColumn dc in dtStd.Columns)
        {
            dtEmp.Columns.Add(dc.ColumnName, dc.DataType);
        }
        // Import rows from dtStd Table.
我试过这个

它帮助我解决问题。

for(int k=0;k  for (int k = 0; k < dt2.Rows.Count; k++)
  {
    dt1.Rows[k]["Name"] = dt2.Rows[k]["StdName"];
    dt1.Rows[k]["Address"] = dt2.Rows[k]["StdAddress"];
  }
{ dt1.Rows[k][“Name”]=dt2.Rows[k][“StdName”]; dt1.行[k][“地址”]=dt2.行[k][“StdAddress”]; } 试试这个:

  for (int i = 0; i < dt2.Rows.Count; i++)
  {
    dt1.Rows.Add(dt2.Rows[i][0], dt2.Rows[i][1]);
  }
for(int i=0;i
试试看

    DataTable dt1 = new DataTable();
    dt1.Columns.Add("col1", typeof(String));
    dt1.Columns.Add("col2", typeof(String));
    dt1.Columns.Add("col3", typeof(String));
    dt1.Columns.Add("col4", typeof(String));

    DataTable dt2 = new DataTable();
    dt2.Columns.Add("col5", typeof(String));
    dt2.Columns.Add("col6", typeof(String));

    dt1.Merge(dt2);

我知道这是旧的,但数据来自哪里

如果要查询sql数据库,只需更改:

    SELECT <column1>, <column2> FROM...

    SELECT <column2>, <column1> FROM...
选择,从。。。
选择,从。。。

查询并返回包含所需列的datatable。

我不确定,但您可以试试这个

Datatable1.Merge(Datable2)

它将为您提供如下输出

您可以克隆对表的引用,并通过调用clear删除行,如下所示:

  for (int k = 0; k < dt2.Rows.Count; k++) {
    dt1.Rows[k]["Name"] = dt2.Rows[k]["StdName"];
    dt1.Rows[k]["Address"] = dt2.Rows[k]["StdAddress"];
  }
NewDataTable= OldDatatable.Clone();
NewDataTable.rows.clear();

除了
Copy()
,你还尝试过其他方法吗?没有,请告诉我其他的尝试方法?我想让你知道,几年后,这就是帮助我解决问题的方法+1回顾:嗨,请不要仅仅用源代码回答。试着提供一个关于你的解决方案如何工作的很好的描述。请参阅:。谢谢
  For r = 0 To t2.Rows.Count - 1
        t1.Rows(r)("Stat") = t2.Rows(r)("Stat")
        t1.Rows(r)("Dest") = t2.Rows(r)("Dest")
        t1.Rows(r)("Orig") = t2.Rows(r)("Orig")
  Next
NewDataTable= OldDatatable.Clone();
NewDataTable.rows.clear();