C# 大数据插入代码

这段C#代码展示了如何使用SqlBulkCopy类进行大数据批量插入操作。通过创建DataTable,设置列映射,并遍历数据列表,将数据逐条添加到表中,最终调用WriteToServer方法将所有数据一次性写入数据库。
摘要由CSDN通过智能技术生成

640?wx_fmt=png

 public static void BulkInsert<T>(string connection ,string tableName, IList<T> list)

        {

            using (var bulkCopy = new SqlBulkCopy(connection))

            {

                bulkCopy.BatchSize = list.Count;

                bulkCopy.DestinationTableName = tableName;

                var table = new DataTable();

                var props = TypeDescriptor.GetProperties(typeof(T))

                                           .Cast<PropertyDescriptor>()

                                           .Where(propertyInfo => propertyInfo.PropertyType.Namespace.Equals("System"))

                                           .ToArray();

                foreach (var propertyInfo in props)

                {

                    bulkCopy.ColumnMappings.Add(propertyInfo.Name, propertyInfo.Name);

                    table.Columns.Add(propertyInfo.Name, Nullable.GetUnderlyingType(propertyInfo.PropertyType) ?? propertyInfo.PropertyType);

                }

                var values = new object[props.Length];

                foreach (var item in list)

                {

                    for (var i = 0; i < values.Length; i++)

                    {

                        values[i] = props[i].GetValue(item);

                    }

                    table.Rows.Add(values);

                }

                bulkCopy.WriteToServer(table);

            }

        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT技术分享社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值