sqlserver C# 批量数据插入 表变量
C# 程序定义表
DataTable newdt = new DataTable();
newdt.Columns.AddRange(new DataColumn[] {
new DataColumn("Batch_no",typeof(string)),
new DataColumn("Partner",typeof(string)),
new DataColumn("CTime",typeof(string)),
new DataColumn("Status",typeof(string)),
new DataColumn("U_MobilePhoneNum",typeof(string)),
new DataColumn("U_ALPayNum",typeof(string)),
new DataColumn("U_ALPayName",typeof(string)),
new DataColumn("AppllAmount",typeof(string)),
new DataColumn("F_name",typeof(string))
});
表结构如上。
SQLServer 中自定义一个表类型结构和上相同,然后再数据中执行存储
--INSERT INTO dbo.OrdFlow
-- ( [Batch_no] ,
-- [U_MobilePhoneNum] ,
-- [U_ALPayNum] ,
-- [U_ALPayName] ,
-- [AppllAmount] ,
-- [Partner] ,
-- [F_name] ,
-- [CTime] ,
-- [Status]
-- )
-- select Batch_no ,
-- [U_MobilePhoneNum] ,
-- [U_ALPayNum] ,
-- [U_ALPayName] ,
-- [AppllAmount] ,
-- [Partner] ,
-- [F_name] ,
-- [CTime] ,
-- [Status] from @dt
大家可以看到程序中定义的表和数据库中 的表字段相同,只是字段顺序不同,所以我在存储中插入时用字段显式来进行插入操作,问题出现了,数据是可以插入的,但是它的插入数据只是按照程序的表结构字段顺序进行插入,无论我怎么在数据库存储中调整字段顺序就是不能按照字段顺序插入。
如上图,我程序定义表A结构是(a,b,c),自定义表变量也是(a,b,c),数据库真是表可能是B(c,b,a),于是我在存储中插入时用命令将顺序调整为(
insert into B(c,b,a) select c,b,a from @dt --@dt 为自定义表变量结构同A
)请大家帮忙找出问题,或者说对C#的批量数据插入有更好的方法,sqlcopy、实体模型之类的就算了,拜托了。