Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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# 如何使用Linq to SQL将一个表中的所有行插入到另一个表中?_C#_Linq - Fatal编程技术网

C# 如何使用Linq to SQL将一个表中的所有行插入到另一个表中?

C# 如何使用Linq to SQL将一个表中的所有行插入到另一个表中?,c#,linq,C#,Linq,我在SQL Server中有两个表 表1包含以下列: 1-id 2-name 3-family 4-address 1-id 2-name 表2包含以下列: 1-id 2-name 3-family 4-address 1-id 2-name 在表1中,我有100000行,并使用此查询读取所有记录: var query = (from p in datacontext.table1 select p).toArray(); 我想将up查询中的所有数据插入表2中

我在SQL Server中有两个表

表1包含以下列:

1-id
2-name
3-family
4-address
1-id
2-name
表2包含以下列:

1-id
2-name
3-family
4-address
1-id
2-name
在表1中,我有100000行,并使用此查询读取所有记录:

var query = (from p in datacontext.table1
             select p).toArray();
我想将up查询中的所有数据插入表2中,现在我使用以下方法:

for(int i = 0; i < query.count(); i++) {
     table2 beh = new tabl2();
     beh.name = query[0].name;
     datacontext.table2.insertonsubmit(beh);
     datacontext.submitchange();
}
for(int i=0;i

还有别的办法吗?谢谢。

使用Linq to SQL逐个插入记录将花费大量时间。与此相反,我建议使用大容量插入,以便您的数据可以在更短的时间内一次性插入,因为您可以使用DataTable和OpenXML。对于该教程:

还是用这个


使用Linq to SQL逐个插入记录将花费大量时间。与此相反,我建议使用大容量插入,以便您的数据可以在更短的时间内一次性插入,因为您可以使用DataTable和OpenXML。对于该教程:

还是用这个


假设您的表名为table1和table2,其中包含可以使用的id和描述列

INSERT INTO table2  (id, description)
       SELECT table2.id, table2.description
       FROM table1;
此外,您还可以在何处添加

INSERT INTO table2  (id, description)
           SELECT table2.id, table2.description
           FROM table1 where table1.id =1;

您可以访问此链接了解更多信息

假设您的表名为table1和table2,其中包含可以使用的id和描述列

INSERT INTO table2  (id, description)
       SELECT table2.id, table2.description
       FROM table1;
此外,您还可以在何处添加

INSERT INTO table2  (id, description)
           SELECT table2.id, table2.description
           FROM table1 where table1.id =1;
您可以访问此链接了解更多信息

var bulkCopy = new SqlBulkCopy(connection);
bulkCopy.DestinationTableName = "table2";
bulkCopy.ColumnMappings.Add("Name", "Name");

using (var reader = new EntityDataReader<Table1>(query))
{
    bulkCopy.WriteToServer(reader);
}
var-bulkCopy=new-SqlBulkCopy(连接);
bulkCopy.DestinationTableName=“表2”;
bulkCopy.ColumnMappings.Add(“Name”、“Name”);
使用(var reader=newentitydatareader(查询))
{
bulkCopy.WriteToServer(读卡器);
}
试试看

var bulkCopy = new SqlBulkCopy(connection);
bulkCopy.DestinationTableName = "table2";
bulkCopy.ColumnMappings.Add("Name", "Name");

using (var reader = new EntityDataReader<Table1>(query))
{
    bulkCopy.WriteToServer(reader);
}
var-bulkCopy=new-SqlBulkCopy(连接);
bulkCopy.DestinationTableName=“表2”;
bulkCopy.ColumnMappings.Add(“Name”、“Name”);
使用(var reader=newentitydatareader(查询))
{
bulkCopy.WriteToServer(读卡器);
}

System.Data.SqlClient
中使用大容量插入使用datatable的帮助,可以在更短的时间内将数据插入到数据库中

 DataTable dt = getData();
 SqlBulkCopyOptions options = SqlBulkCopyOptions.Default;
                    using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(sqlconnection, options, null))
                    {
                        dt.Columns.Add("Id", typeof(long)).SetOrdinal(0);
                        dt = AddDefaultColumn(dt);
                        sqlBulkCopy.BulkCopyTimeout = 300;
                        sqlBulkCopy.DestinationTableName = "tableName";
                        sqlBulkCopy.WriteToServer(dt);
                    }

System.Data.SqlClient
Data中使用大容量插入,使用datatable的帮助,可以在更短的时间内将数据插入到数据库中

 DataTable dt = getData();
 SqlBulkCopyOptions options = SqlBulkCopyOptions.Default;
                    using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(sqlconnection, options, null))
                    {
                        dt.Columns.Add("Id", typeof(long)).SetOrdinal(0);
                        dt = AddDefaultColumn(dt);
                        sqlBulkCopy.BulkCopyTimeout = 300;
                        sqlBulkCopy.DestinationTableName = "tableName";
                        sqlBulkCopy.WriteToServer(dt);
                    }


为什么不在数据库中执行?为什么不在数据库中执行?感谢您关注我的问题,但我如何使用linq查询中的批量?@behzadrazzaqi-没有必要对所有问题都坚持使用linq,您应该使用解决方案,该解决方案提供了一种很好的实现方式,复杂性更低,插入速度更快。OK,将我的数据复制到表1中,并希望将所有数据复制到表2中,我如何在c#?@behzadrazzaqi中使用bulk编写这些数据-只需检查第二个更适合您的链接..SqlBulCopy也会有示例代码…谢谢,最佳教程,但是我怎样才能用你的链接教程从表1中选择just name列,并将sqlbulkcopy复制到表2?谢谢你关注我的问题,但是我怎样才能从linq query中使用bulk?@behzadrazzaqi-你不必为所有问题都坚持使用linq,您应该采用一种解决方案,该解决方案提供了一种很好的实现方式,复杂性更低,插入问题更快OK,我的数据到表1中,并希望将所有数据复制到表2中,我如何在c#?@behzadrazzaqi中使用bulk编写它-只需检查第二个更适合您的链接..SqlBulCopy也会有示例代码…谢谢,最佳教程,但是我如何使用链接教程从表1中选择just name列并将sqlbulkcopy选择到表2?table1.id=1;>>的位置是什么?如果您只想从表1中选择一行,那就是sql命令中的查询解决方案,但我希望使用linq to sql命令!table1.id=1;>>的位置是什么?如果您只想从表1中选择一行,那就是sql命令中的查询解决方案,但我希望使用linq to sql命令!我只想将表1中的所有名称列插入表2,请编写()此链接将帮助您编写DataTable dt=query\u detail\u allrow.CopyToDataTable();,但是你会犯错误!让我们使用.var query\u detail\u allrow=从mainbehzad.taxpillcrmtemps中的p选择p;DataTable dt=query_detail_allrow.CopyToDataTable();我只想将表1中的所有名称列插入表2,请编写()此链接将帮助您编写DataTable dt=query\u detail\u allrow.CopyToDataTable();,但是你会犯错误!让我们使用.var query\u detail\u allrow=从mainbehzad.taxpillcrmtemps中的p选择p;DataTable dt=query_detail_allrow.CopyToDataTable();