首页 > 数据库 >SqlBulkCopy批量插入数据

SqlBulkCopy批量插入数据

时间:2024-04-09 17:27:03浏览次数:26  
标签:批量 SqlBulkCopy System Same 插入 Add dt dr Columns

    private void uiButton1_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("CreateBy", typeof(System.Int64));
            dt.Columns.Add("CreateTime", typeof(System.DateTime));
            dt.Columns.Add("UpdateBy", typeof(System.Int64));
            dt.Columns.Add("UpdateTime", typeof(System.DateTime));
            dt.Columns.Add("IsDelete", typeof(System.Int32));
            dt.Columns.Add("platform", typeof(System.Int32));
            dt.Columns.Add("WebSiteId", typeof(System.Int64));
            dt.Columns.Add("GoodsId", typeof(System.String));
            dt.Columns.Add("Same_platform", typeof(System.Int32));
            dt.Columns.Add("Same_GoodsId", typeof(System.String));
            dt.Columns.Add("Same_Similarity", typeof(System.Double));
            dt.Columns.Add("Same_GoodsName", typeof(System.String));
            dt.Columns.Add("Same_GoodsUrl", typeof(System.String));
            dt.Columns.Add("Same_ImageUrl", typeof(System.String));
            dt.Columns.Add("Same_Price", typeof(System.Double));
            dt.Columns.Add("Same_Sold", typeof(System.Int32));

            var bll = new Database.BLL.Local.Gd_FindSameDbBll();
            List<Database.Model.Local.Gd_FindSame> list = bll.QueryAll();

            List<Gd_FindSame_Detail> list1 = new List<Gd_FindSame_Detail>();
            for (int i = 0; i < list.Count; i++)
            {
                var same = list[i];
                //var count = Database.Instance.FindSame_DetailDbBll.Count($"GoodsId='{ same.GoodsId}' and Same_GoodsId='{same.Same_GoodsId}'");
                //if (count > 0)
                //    continue;
                DataRow dr = dt.NewRow();
                dr["CreateBy"] = 4;
                dr["CreateTime"] = DateTime.Now;
                dr["UpdateBy"] = 4;
                dr["UpdateTime"] = DateTime.Now;
                dr["IsDelete"] = 0;
                dr["platform"] = same.platform;
                dr["WebSiteId"] = same.WebSiteId;
                dr["GoodsId"] = same.GoodsId;
                dr["Same_platform"] = same.Same_platform;
                dr["Same_GoodsId"] = same.Same_GoodsId;
                dr["Same_Similarity"] = same.Same_Similarity;
                dr["Same_GoodsName"] = same.Same_GoodsName;
                dr["Same_GoodsUrl"] = same.Same_GoodsUrl;
                dr["Same_ImageUrl"] = same.Same_ImageUrl;
                dr["Same_Price"] = same.Same_Price;
                dr["Same_Sold"] = same.Same_Sold;
                dt.Rows.Add(dr);
            }
            SqlBulkCopyByDatatable(SqlHelper.dbConn, "Gd_FindSame_Detail", dt);
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="connectionString">目标连接字符</param>
        /// <param name="TableName">目标表</param>
        /// <param name="dt">源数据</param>
        private void SqlBulkCopyByDatatable(string connectionString, string TableName, DataTable dt)
        {
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction))
                {
                    try
                    {
                        sqlbulkcopy.BulkCopyTimeout = 180;
                        sqlbulkcopy.DestinationTableName = TableName;
                        for (int i = 0; i < dt.Columns.Count; i++)
                        {
                            sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
                        }
                        sqlbulkcopy.WriteToServer(dt);
                    }
                    catch (System.Exception ex)
                    {
                        throw ex;
                    }
                }
            }
        }

 

标签:批量,SqlBulkCopy,System,Same,插入,Add,dt,dr,Columns
From: https://www.cnblogs.com/zhaotiantian/p/18124365

相关文章

  • eas_批量更新组织长编码,长名称
    protectedvoidrebuildOrgStructureDisplayName(Contextctx)throwsBOSException{/*555*/Connectionconn=null;/*556*/Statementstmt=null;/*557*/PreparedStatementpstmt=null;/*558*/ResultSetrs=null;/**/......
  • asp.net KindEditor编辑器整合百度WebUploader插件批量上传图片
    集成背景说明多个图片进行批量上传新版本浏览器兼容性问题处理,原编辑器上传图片功能使用flash上传插件,由于最新版本浏览器不再支持flash,重新集成新的上传插件,对编辑器进行改造升级。一、KindEditor介绍KindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即......
  • 开发Element-UI的Table 组件列显示隐藏,列表数据勾选批量导出/全量导出,显示导出进度并
    #用法<TabColDisplay:total="total"api-url="hgp/order"api-name="hgpLocalList":s-param="listQuery":select-ids="selIds"title="快速......
  • 插入排序的基本实现【数据结构与算法—TypeScript 实现】
    笔记整理自coderwhy『TypeScript高阶数据结构与算法』课程概念本质:将数列分为已排序和未排序,将未排序中的元素插入到已排序中的合适位置特性复杂度分析时间复杂度:最好情况:O(n),有序序列最坏情况:O(n^2),倒序序列平均情况:O(n^2),随机数列空间复杂度:O(n),原地排序使......
  • 批量转换pcd数据的编码形式:Binary转ASCII
    本文为CSDN晚意丶3D原创,转载请表明原文出处———————————————————————————————————————批量转换pcd数据的编码形式:Binary转ASCII代码结果相关内容pcd点云格式的编码有两种,分别是Binary和ASCIIBinary是二进制格式,用文......
  • vivado 使用“Set Up Debug”Wizard 来插入调试核
    使用“SetUpDebug”Wizard来插入调试核标记要调试的信号线(net)后,下一步是将其分配到调试核。VivadoDesignSuite提供了易于使用的“设置调试(SetupDebug)”Wizard,以帮助逐步指导您完成自动创建调试核并将调试信号线分配至核的输入的整个过程......
  • vivado 探针用作为数据和/或触发器、使用 XDC 命令来插入调试核
    您可在Vivado硬件管理器中自定义探针,将其用作为数据和/或触发器。如果探针参与触发或采集比较值,则应将其配置为仅限“触发器”探针。这样即可最优化ILA核使用BRAM的方式。通常,如需采集探针数据,则应将其配置为仅限“数据”探针。如果探针同时参......
  • 抖音评论关键词批量下载软件|视频评论提取采集工具
    《视频评论关键词批量采集软件:拓展客户群体,轻松抓取用户需求!》    随着视频平台的迅速发展,视频评论已成为了企业和个人了解用户需求、拓展客户群体的重要途径之一。为了帮助您更高效地抓取并分析视频视频评论,我们推出了全新版本的视频评论关键词批量采集软件,让您轻松......
  • 什么是插入排序
    一、什么是插入排序插入排序是一种最简单的排序方法,其基本思想是将一个记录插入到已经排好序的有序表中,从而形成一个新的、记录数增1的有序表。其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素进行遍历,内层循环对当前元素前面有序表进行待插入位置查找,并进行移......
  • 常见的排序算法——插入排序(二)
    本文记述了插入排序微小改进的基本思想和一份参考实现代码,并在说明了算法的性能后用实验进行了验证。◆思想内存中的数据交换是昂贵的操作,此改进实现了不需要交换的插入排序。将第一个元素之后的所有元素作为待排序范围,将前面的所有元素作为已排序范围。通过一一比较,逐个将已......