• 数据批处理


      public ActionResult BatchCreateCoupons( BuildWithoutCouponsObject model)
            {
                var connect = ConfigurationManager .AppSettings["Connect" ].ToString(); //获取连接字符串
                SqlConnection sqlcon = new SqlConnection (connect);
                DateTime time = DateTime. Now;
                DataTable dt = new DataTable();
                dt .Columns. Add("Id", typeof (Guid));
                dt .Columns. Add("StoreGrouponId", typeof (Guid));
                dt .Columns. Add("BranchCode", typeof (string));
                dt .Columns. Add("StoreCode", typeof (string));
                dt .Columns. Add("CouponsStatus", typeof (CouponsStatus));
                dt .Columns. Add("CouponsCode", typeof (string));
                dt .Columns. Add("StoreId", typeof (Guid));
                dt .Columns. Add("TenantId", typeof (int));
                dt .Columns. Add("CreationTime", typeof (DateTime));
                dt .Columns. Add("CreatorUserId", typeof (long));
                dt .Columns. Add("LastModificationTime", typeof (DateTime));
                dt .Columns. Add("LastModifierUserId", typeof (long));
                for (int i = 1; i <= model.CreateCount; i ++)
                {
                    string couponsCode = CommonUtil.GuidToStringID();
                    DataRow r = dt.NewRow();
                    r[ "Id" ] = Guid.NewGuid();
                    r[ "StoreGrouponId" ] = model .Id;
                    r[ "BranchCode" ] = model .TenancyName;
                    r[ "StoreCode" ] = model .StoreCode;
                    r[ "CouponsStatus" ] = CouponsStatus .Without;
                    r[ "CouponsCode" ] = couponsCode;
                    r[ "StoreId" ] = model .StoreId. Value;
                    r[ "TenantId" ] = model .TenantId;
                    r[ "CreationTime" ] = time;
                    r[ "CreatorUserId" ] = model .CreatorUserId;
                    r[ "LastModificationTime" ] = DBNull.Value;
                    r[ "LastModifierUserId" ] = DBNull.Value;
                    dt .Rows. Add(r);
                }
                sqlcon .Open();
                using (SqlBulkCopy bulk = new SqlBulkCopy (connect))
                {
                    bulk .BatchSize = 1000;
                    bulk .DestinationTableName = "Store_StoreGrouponCoupons" ;
                    bulk .ColumnMappings.Add( "Id" , "Id");
                    bulk .ColumnMappings.Add( "StoreGrouponId" , "StoreGrouponId" );
                    bulk .ColumnMappings.Add( "BranchCode" , "BranchCode");
                    bulk .ColumnMappings.Add( "StoreCode" , "StoreCode");
                    bulk .ColumnMappings.Add( "CouponsStatus" , "CouponsStatus" );
                    bulk .ColumnMappings.Add( "CouponsCode" , "CouponsCode" );
                    bulk .ColumnMappings.Add( "StoreId" , "StoreId");
                    bulk .ColumnMappings.Add( "TenantId" , "TenantId");
                    bulk .ColumnMappings.Add( "CreationTime" , "CreationTime");
                    bulk .ColumnMappings.Add( "CreatorUserId" , "CreatorUserId" );
                    bulk .ColumnMappings.Add( "LastModificationTime" , "LastModificationTime" );
                    bulk .ColumnMappings.Add( "LastModifierUserId" , "LastModifierUserId" );
                    bulk .WriteToServer(dt);
                   //ColumnMappings.Add("dt的列名","数据库表中对应的列名")
                }
                // DateTime endTime = DateTime.Now;
                // TimeSpan tt = time - endTime;
                //string tstr = tt.ToString();
                dt .Dispose();
                sqlcon .Close();
                sqlcon .Dispose();
                return null ;
            }  
     注:dt中的列表必须与目标表中的列名一一对应,SqlBulkCopy使用在包含事务的方法中的时候可能会发生冲突,会抱一个....不可用的错误,这个需要注意及解决.
    可能是SqlBulkCopy会自动形成一个事务,事务中调事务可能就会报错,可能是工作单元的问题.BatchSize:为一次处理的行数,可以自定义
    ConfigerManager.Setting("key"),取配置文件中的连接客串,如:< add key ="Connect" value="Data Source=120.26.107.74;database=FamiDB;pwd=Iamshbd5768;uid=Sa;" />
  • 相关阅读:
    Set / Map 集合 -ES6
    getter/setter
    构造函数-class类 -语法糖 -ES6
    原型链-继承
    创建对象/克隆
    Generator生成器函数- ES6
    iframe跨域访问
    setTimeout延迟加载
    adt新建项目后去掉appcompat_v7的解决方法
    PHP数组的操作
  • 原文地址:https://www.cnblogs.com/chensong0524/p/15270749.html
Copyright © 2020-2023  润新知