C# 如何使用Linq to SQL将一个表中的所有行插入到另一个表中?
我在SQL Server中有两个表 表1包含以下列: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中
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();