你需要先模拟出这种“只进去一半”的情况,贴出代码来说明为什么只进去一半。没有什么“突然断网,或页面被关掉”就一定只进去一半数据这种说法。你需要先能贴出你的bug代码,再来讨论。数据库事务,放在10年前也许算是一个比较通用的解决办法。放在今天,完全过时了。因为单纯依赖数据库事务会让程序(仅指今天在大系统“秒杀”和“大数据”背景下的电商系统,不是指10年前的电商系统)业务处理速度慢200倍,无法真正放到大点的应用中。

解决方案 »

  1.   

    using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn))
                                            {
                                                    sqlBC.BatchSize = 10000;
                                                    sqlBC.BulkCopyTimeout = 500;
                                                    sqlBC.DestinationTableName = "dbo.bar_code";
                                                    sqlBC.ColumnMappings.Add("no", "no");
                                                    sqlBC.ColumnMappings.Add("code", "code");
                                                    sqlBC.ColumnMappings.Add("ean", "ean");
                                                    sqlBC.ColumnMappings.Add("date_time", "date_time");
                                                    sqlBC.ColumnMappings.Add("ref_no", "ref_no");
                                                    sqlBC.ColumnMappings.Add("author", "author");
                                                    sqlBC.WriteToServer(DTup);
                                            }
    我用的是这种批量录入的方法,这种方法也是事务。我是用excel导入的,如果在
    excel导入的过程中,突然关掉,或者断电,就不知道数据完成情况,所以就想和京东的样
    会有一个订单没有完成,异常之类的。