如何从一个DataTable中复制数据行到另一个DataTable中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从一个DataTable中复制数据行到另一个DataTable中相关的知识,希望对你有一定的参考价值。

假如返回的DataTable就是 dt ,
方法一:
直接复制一个DataTable,然后清空数据(Column结构还保留),最后再用ImportRow()方法从dt中加入需要的Row;
DataTable dt2 = new DataTable();
dt2 = dt.Copy();
dt2.Rows.Clear();
dt2.ImportRow(dt.Rows[0]);//这是加入的是第一行

方法二:
首先新的DataTable必须加入对应的列名(Column)
一个空的没有结构的DataTable是不允许直接向里面加入一行的!
for (int i =0; i < dt.Columns.Count; i++)

dt2.Columns.Add(dt.Columns[i].ColumnName);//有重载的方法,可以加入列数据的类型

然后就可以直接加入Row了!
//1
DataRow drq = dt2.NewRow();
drq.ItemArray = dt.Rows[0].ItemArray;//这是加入的是第一行
dt2.Rows.Add(drq);
//2
dt2.ImportRow(dt.Rows[0]);//这是加入的是第一行

最后可以将新的DataTable放入DataSet中了:
ds = new DataSet();
ds.Tables.Add(dt2);
参考技术A 您好,我来为您解答:
DataTable dt = ""; //这里是填充DataTable数据
DataTable dtNew = dt.Copy(); //复制dt表数据结构
dtNew.Clear() //清楚数据
for (int i = 0; i < dt.Rows.Count; i++)

if (条件语句)

dtNew.Rows.Add(dt.Rows[i].ItemArray); //添加数据行



===前提:我们已经有一个DataTable的数据表 现在需要的只是其中的一行数据===本回答被提问者和网友采纳

如何使用复制命令在 postgres 中将数据从一个表复制到另一个表

【中文标题】如何使用复制命令在 postgres 中将数据从一个表复制到另一个表【英文标题】:How do I copy data from one table to another in postgres using copy command 【发布时间】:2015-09-25 21:10:29 【问题描述】:

我们使用copy命令将一张表的数据复制到数据库外的一个文件中。

是否可以使用命令将一张表的数据复制到另一张表中。

如果是,任何人都可以分享查询。

或者有没有更好的方法,比如我们可以使用 pg_dump 或类似的东西。

【问题讨论】:

不需要复制命令:insert into other (col1, col2) select col1, col2 from one 使用复制/转储的时间是在未连接数据库之间移动数据时(使用文件作为过渡)。如果表在同一个数据库中,则不需要这样做。 感谢您的回复,但我很好奇是否可以使用复制命令将数据从一个表复制到另一个表。如果是的话怎么做? 【参考方案1】:

你不能轻易做到这一点,但也没有必要这样做。

CREATE TABLE mycopy AS
SELECT * FROM mytable;

CREATE TABLE mycopy (LIKE mytable INCLUDING ALL);

INSERT INTO mycopy
SELECT * FROM mytable;

如果您只需要选择某些列或重新排列它们,您可以这样做:

INSERT INTO mycopy(colA, colB)
SELECT col1, col2 FROM mytable;

您还可以进行选择性 pg_dump 并仅恢复目标表。

【讨论】:

我刚刚为不同架构中的应用创建了重复的表,但是当我尝试使用 INSERT INTO mycopy SELECT * FROM mytable 方法时,我得到 ERROR: column "order" is of type integer but expression is of type text LINE 2: SELECT * FROM django_apps.about_post 需要明确的是,order 在两个表中都是一个整数。跨度> @RyanM 新问题请在两个表中显示来自psql\d 输出 @RyanM 同样。您可以通过使用列名来避免这种情况,例如INSERT INTO mycopy (a, b) SELECT * FROM mytable,但我来这里是为了寻找替代方法。我的表具有所有相同的列,只是顺序不同。事实证明这是不可能的。 ***.com/questions/1267427/… 第二个选项(包括所有)非常适合我使用 postgres 11.2 和 alpine linux 3.9 请注意,使用 (INCLUDING ALL) 创建的表将与其他表共享序列【参考方案2】:

如果两个表中的列相同(名称和数据类型),那么您可以使用以下内容

INSERT INTO receivingtable (SELECT * FROM sourcetable WHERE column1='parameter' AND column2='anotherparameter');

【讨论】:

【参考方案3】:

假设已经有一个表,并且您想将所有记录从该表复制到另一个当前不存在于数据库中的表中,那么以下查询将为您完成此任务:

SELECT * into public."NewTable" FROM public."ExistingTable";

【讨论】:

请注意,select ... into 语法已被弃用,取而代之的是符合标准的 create table ... as select ...

以上是关于如何从一个DataTable中复制数据行到另一个DataTable中的主要内容,如果未能解决你的问题,请参考以下文章

ADO.NET: 如何将一个DataTable中的行批量复制到另一个表中?

DataGridView 选择的行到 DataTable

复制DataTabe的Rows到另一个DataTable

复制DataTabe的Rows到另一个DataTable

如何将一个数据表附加到另一个数据表

使用 rowid 从一个表更新百万行到另一个 Oracle