如何大容量插入具有动态长度且没有列名的对象



我通过SSE使用来自提供商的调查数据(以json形式交付),并将其反序列化为对象。该对象保存以下数据,没有标题信息,只有数据("1"、"1"one_answers"Yes,I do")

|UserNumber  | Variable1   | Variable2    |
|------------|-------------|--------------|
| 1          |      1      |  Yes, I do   |
| 1          |      5      |  No, I do not|

用户数量和变量数量因调查而异,但目前最大值为500.000和350。对象看起来如下:

(1) User1
(1) "4482359"
(2) "12526"
(3) "5"
(4) ""
...    
(2) User1
(1) "5847895"
(2) "33568"
(3) "6"
(4) "2"
...

我将数据存储在一个对象中,现在我想将数据存储到SQL表中,但我不确定如何做到这一点,因为我的对象的长度不同(两种尺寸)。我已经完成的是将数据放入.csv并使用批量插入(即使我因","分隔符而遇到问题)

query.Append("USE Import BULK INSERT dbo.[Insert_Table] FROM")
query.Append(" 'C:UsersIDesktopInsert_Table.csv' ")
query.Append("With (FIELDTERMINATOR = ',', ROWTERMINATOR = 'n')")

但为了这个,我必须循环所有的元素。

我也读过关于SQLBulkCopy的文章,但为此,我必须将数据带入Datatable,并将此数据映射到SQL表中。但由于我在对象中没有列名,我不知道如何使用它。有人能给我一个如何将对象插入数据库的片段吗?

像这样装箱一张表

DataTable dt = new DataTable();
dt.Columns.Add("UserNumber", typeof(int));
for(int i = 1; i <=10; i++)
{
dt.Columns.Add("Column" + i.ToString(), typeof(string));
}

最新更新