问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何实现快速的将DataTable插入到临时表

发布网友 发布时间:2023-11-12 21:01

我来回答

1个回答

热心网友 时间:2024-12-05 01:58

string selectCommand = 
dataTable.Columns.Cast<DataColumn>().Aggregate("select ", 
(current, col) => current + (col.ColumnName + ","));
            selectCommand = selectCommand.Substring(0, selectCommand.Length - 1);
            selectCommand += " from " + TableName;
DataRow[] errorRows = SaveDataTable(dataTable, TableName, commandText,
                continueUpdateOnError);

/// <summary>
        /// 保存DataTable
        /// </summary>
        /// <param name="dataTable">DataTable</param>
        /// <param name="tableName">表名</param>
        /// <param name="commandText">sql文本命名</param>
        /// <param name="continueUpdateOnError">行更新过程中遇到错误是否成异常</param>
        /// <returns>错误行集合</returns>
        public static DataRow[] SaveDataTable(DataTable dataTable, string tableName, string commandText,
            bool continueUpdateOnError)
        {
            var helper = SQLiteDBHelperService.Instanse();
            var trans = helper.BeginTrans();
            var conn = trans.Connection;
            if (conn.State == ConnectionState.Closed)
                conn.Open();

            try
            {
                var cmd = conn.CreateCommand();
                cmd.CommandText = commandText;
                cmd.Connection = conn;
                cmd.Transaction = trans;

                var adp = helper.DBComm.CreateDataAdapter(cmd);
                adp.ContinueUpdateOnError = continueUpdateOnError;
                DbCommandBuilder cmdBuilder = helper.DBComm.CreateCommandBuilder(adp);
                cmdBuilder.DataAdapter = adp;
                cmdBuilder.QuotePrefix = "[";
                cmdBuilder.QuoteSuffix = "]";
                adp.InsertCommand = cmdBuilder.GetInsertCommand();
                adp.UpdateCommand = cmdBuilder.GetUpdateCommand();
                adp.DeleteCommand = cmdBuilder.GetDeleteCommand();
                adp.Update(dataTable);
                dataTable.AcceptChanges();
                trans.Commit();
            }
            catch (Exception ex)
            {
                trans.Rollback();
                MessageBox.Show(ex.ToString());
            }

            conn.Close();
            return dataTable.GetErrors();
        }

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
"你是在哪看到我的照片?"怎么说英语 留恋地看着我的照片用英语怎么说? 高德iphone地图下载 苹果手机高德地图怎么下载地图 孕中期适合出游吗 哪些孕妇不适合长途旅行 孕妇坐长途车旅行的好处 孕妇出游的最佳时间 孕晚期适合出游吗 孕妇外出旅行禁忌 小米11烧wifi啥表现 马自达五突然点火点不着 乐享无忧重疾险表现好吗?重疾赔付一般多少次? 草莓怎样才算成熟9 我设置过一次了,还能改第二次吗?怎么改? 如何判断草莓是否成熟 可以采摘24 成绩好是唯一的出路吗?220 一个手机号注册了两个,前一个不小心卸载怎么小恢复 去网吧上网,去哪里搞网卡 怎样在驾照学车的过程中把到妹 手机中的Symbian“S60”“S40”等等是什么?什么区别?哪种最贵?_百度知... 深圳驾考散学费用5000块,没有驾校,报名散学的,值得吗?2 草莓熟了吗? 智能电视怎么退出网络模式,当作普通电视看电视台节目?255 撒尿虾的做法2 一年内第二次修改技巧 电脑发出“得得”声是什么原因 纤维素对人体有哪些作用? 为什么笔记本电脑有得得的响声?怎么弄?请说详细点· 垃圾食品对人身体的危害有哪些621 散学了解吗? 如何办理网吧的网卡?(我已满18岁) 濑尿虾要怎么做1 深圳到五台山有直达的吗?最快的交通方式?28 从深圳去五台山,机票应该买个什么才好,五台山貌似是山西的,怎... 不是应届生 如何在人才市场找工作 为什么内存被占满了我根本用不了30g却显示50多个g 安徽瀚举建设工程有限公司怎么样?4 快手上面买手机是不是假的 骗人的19 快手上有很多在华强北卖手机的,可靠吗?7 快手上的高仿手机是不是真的6 请问懂风水人士大门在正东,想挂副九鱼荷花图,挂哪方位好呢! 请教生意经,风水,庭院里荷花缸应放置在什么方位 ...的系统备份工具备份了应用数据,现在换了VIVO,怎么才能把应用数据导入... 中国电信机顶盒怎么连接电视机播放427 如何定义精神出轨3 一年改2次的办法 精神出轨的准确定义是什么?23 电脑问题,今天突然就这样了。不过还能上网,但是很慢。昨天还是正常的... 如何判断木瓜是否熟透?211 北京有没有搏击俱乐部?5