SQL Server 数据库怎么批量添加?

duoxiangliuti 2011-05-26 03:42:15
我现在有一张表,存储的是一些点的温度值,每个点一个字段,我采集完这些点的值后先把他们放在一个数组里面的,然后再加入数据库。Insert Into Temperature Values(),括号里面只能按照(arr[0],arr[1],......)一个数据一个数据的写下去吗?有二百多个点,累死不说,看起来也不怎么好啊!刚接触这个东西,不知道有没有其他方法实现此功能。谢谢各位了!
...全文
344 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxdlut 2011-05-26
  • 打赏
  • 举报
回复
SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connstr,SqlBulkCopyOptions.UseInternalTransaction);
sqlbulkcopy.DestinationTableName = "table1";
sqlbulkcopy.WriteToServer(ds.Tables[0]);

你把存储的温度值读取到数据集ds中,应用上面三行代码即可。上面第一行代码中“connstr”是数据库连接字符串,换成你自己的。另外,执行上面代码需要添加引用:using System.Data.SqlClient;

肖恩 2011-05-26
  • 打赏
  • 举报
回复
这个限制很大的,要求列名必须相同(区分大小写字母),而且顺序也要一样

//insert 整个表
public void BulkInsert(DataTable fromTable,string toTable_Name)
{
using (SqlBulkCopy copy=new SqlBulkCopy(this.DBConnection))
{
foreach (DataColumn col in fromTable.Columns)
{
copy.ColumnMappings.Add(col.ColumnName, col.ColumnName);
}
if (string.IsNullOrEmpty(fromTable.TableName))
copy.DestinationTableName = fromTable.TableName;
else
copy.DestinationTableName = toTable_Name;
copy.WriteToServer(fromTable);
}
}
//insert 多行记录
public void BulkInsert(DataRow[] Rows, string toTable_Name)
{
using (SqlBulkCopy copy = new SqlBulkCopy(this.DBConnection))
{
foreach (DataColumn col in Rows[0].Table.Columns)
{
copy.ColumnMappings.Add(col.ColumnName, col.ColumnName);
}
copy.DestinationTableName = toTable_Name;
copy.WriteToServer(Rows);
}
}
daifei4451 2011-05-26
  • 打赏
  • 举报
回复
Declare @Tb Table(ID Int)
Declare @i Int
SET @i=1
WHILE @i <10001
BEGIN
INSERT @Tb Values(800000+@i)
SET @i=@i+1
END
SELECT * from @Tb

这个可以的
cjh200102 2011-05-26
  • 打赏
  • 举报
回复
事物就可解决你这个问题
避风港 2011-05-26
  • 打赏
  • 举报
回复
Declare @Tb Table(ID Int)
Declare @i Int
SET @i=1
WHILE @i <10001
BEGIN
INSERT @Tb Values(800000+@i)
SET @i=@i+1
END
SELECT * from @Tb

duoxiangliuti 2011-05-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zl2121016 的回复:]
BULK INSERT
[/Quote]
具体怎么用啊,网上也搜不到!
肖恩 2011-05-26
  • 打赏
  • 举报
回复
BULK INSERT
weilu0328 2011-05-26
  • 打赏
  • 举报
回复
Sqlserver有批处理的命令,我之前用过,你可以查查看。
assky124 2011-05-26
  • 打赏
  • 举报
回复
Insert into Table2(a, c, d) select a,c,5 from Table1

Google搜下 Insert Select
ohkuy 2011-05-26
  • 打赏
  • 举报
回复
写个事务,循环录入就OK!

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧