2016-07-25 2 views
1

У меня есть имена столбцов, как этотВставить в 120 столбцов из 120-индексированного массива

Id 
,Test 
,[H01_1] 
,[H01_2] 
,[H01_3] 
,[H01_4] 
,[H01] 
,[H02_1] 
,[H02_2] 
,[H02_3] 
,[H02_4] 
,[H02] 
,[H03_1] 
,[H03_2] 
,[H03_3] 
,[H03_4] 
,[H03] 
,[H04_1] 
,[H04_2] 
,[H04_3] 
,[H04_4] 
,[H04] 
,[H05_1] 
,[H05_2] 
,[H05_3] 
,[H05_4] 
,[H05] 
,[H06_1] 
,[H06_2] 
,[H06_3] 
,[H06_4] 
,[H06] 
,[H07_1] 
,[H07_2] 
,[H07_3] 
,[H07_4] 
,[H07] 
,[H08_1] 
,[H08_2] 
,[H08_3] 
,[H08_4] 
,[H08] 
,[H09_1] 
,[H09_2] 
,[H09_3] 
,[H09_4] 
,[H09] 
,[H10_1] 
,[H10_2] 
,[H10_3] 
,[H10_4] 
,[H10] 
,[H11_1] 
,[H11_2] 
,[H11_3] 
,[H11_4] 
,[H11] 
,[H12_1] 
,[H12_2] 
,[H12_3] 
,[H12_4] 
,[H12] 
,[H13_1] 
,[H13_2] 
,[H13_3] 
,[H13_4] 
,[H13] 
,[H14_1] 
,[H14_2] 
,[H14_3] 
,[H14_4] 
,[H14] 
,[H15_1] 
,[H15_2] 
,[H15_3] 
,[H15_4] 
,[H15] 
,[H16_1] 
,[H16_2] 
,[H16_3] 
,[H16_4] 
,[H16] 
,[H17_1] 
,[H17_2] 
,[H17_3] 
,[H17_4] 
,[H17] 
,[H18_1] 
,[H18_2] 
,[H18_3] 
,[H18_4] 
,[H18] 
,[H19_1] 
,[H19_2] 
,[H19_3] 
,[H19_4] 
,[H19] 
,[H20_1] 
,[H20_2] 
,[H20_3] 
,[H20_4] 
,[H20] 
,[H21_1] 
,[H21_2] 
,[H21_3] 
,[H21_4] 
,[H21] 
,[H22_1] 
,[H22_2] 
,[H22_3] 
,[H22_4] 
,[H22] 
,[H23_1] 
,[H23_2] 
,[H23_3] 
,[H23_4] 
,[H23] 
,[H24_1] 
,[H24_2] 
,[H24_3] 
,[H24_4] 
,[H24] 

И я пытаюсь написать простой INSERT с Dapper (SQL Server 2014). Для Идентификатора и теста Я пишу анонимный объект для ввода в параметр, но я не был уверен, что лучший способ взять 120 length int? массив и вставить его в столбцы, начиная с H

где индекс 0 переходит в H01_1 и индекс 1 идет в H01_2 ... и т.д.

Я не хочу, чтобы написать SQL, который говорит

H01_1 = @H01_1, 
H01_2 = @H01_2, 
... 

а потом еще надо сделать анонимный объект, который делает

H01_1 = array[0], 
H01_2 = array[1], 
... 

Одна вещь, которую я могу сделать, это вставить только Id и тестирование, а затем вернуться назад и сделать UPDATE на этой записи. Но я все еще в том же сценарии, который был раньше, когда я не знаю, как лучше написать UPDATE в dapper, не записывая вещи 120 раз.

ответ

0
  1. Если можно изменить структуру DataTable, то только следуют ниже конструкции

    В вашей таблице вы больше номер столбца и узнать, что ваш назначенный идентификатор как первичный. Таким образом, вместо того, чтобы использовать выше использования структуры данных ниже ..

ID     test   column       value         
01    xyz   H01_1       val_H01_1 
01    xyz    H01_2       val_H01_2 

Присвоить группы первичный ключ для ID, испытания и колонки ..

  1. Если это невозможно изменить структуру. Затем создайте XML из своих данных переднего конца и создайте Хранимую процедуру, как показано ниже, чтобы исправить ее. Если вы пройдете через http://www.itworld.com/article/2960645/development/tsql-how-to-use-xml-parameters-in-stored-procedures.html, тогда вы получите представление.
+0

Я не могу изменить структуру, и мне нужно что-то более прямое, чем сделать 120 переменных в dapper. XML - это более сложное решение – LearningJrDev