用SqlBulkCopy批量插入数据
/// <summary>
/// /*将新取的数据加入到临时表中*/
/// </summary>
/// <param name="dt"></param>
public void RankUpdate(DataTable dt)
{
if (dt == null || dt.Rows.Count == 0)
return;
SqlBulkCopy sbc = new SqlBulkCopy(SqlHelper.WRITECONNECTIONSTRING);
sbc.BulkCopyTimeout = 900;
sbc.ColumnMappings.Add("ProductId", "ProductId");
sbc.ColumnMappings.Add("Name", "Name");
sbc.ColumnMappings.Add("ImgPath", "ImgPath");
sbc.ColumnMappings.Add("Price", "Price");
sbc.ColumnMappings.Add("Unit", "Unit");
sbc.ColumnMappings.Add("Type", "Type");
sbc.ColumnMappings.Add("TotalHit", "TotalHit");
sbc.ColumnMappings.Add("ShopId", "ShopId");
sbc.ColumnMappings.Add("ShopName", "ShopName");
sbc.ColumnMappings.Add("ShopUrl", "ShopUrl");
sbc.ColumnMappings.Add("SiteId", "SiteId");
sbc.ColumnMappings.Add("SiteName", "SiteName");
sbc.ColumnMappings.Add("SiteUrl", "SiteUrl");
sbc.ColumnMappings.Add("HyId", "HyId");
sbc.ColumnMappings.Add("AreaCode", "AreaCode");
sbc.ColumnMappings.Add("TypeId", "TypeId");
sbc.ColumnMappings.Add("SourceId", "SourceId");
sbc.ColumnMappings.Add("AddTime", "AddTime");
sbc.DestinationTableName = "ProductHitRank";
sbc.WriteToServer(dt);
sbc.Close();
}
插入数据时要注意一下几点:
- 源数据的字段类型要和目标表对应的字段类型相符,否则会发生错误(具体啥错误我这猪脑子已经忘记了!!!)。
- 源数据的长度如果超过了目标表对应字段的长度,也会发生错误。
- 有时候因为字段中有‘也会发生错误。
嗯,就这些吧,啥时候想起来再写。。。
浙公网安备 33010602011771号