Объединение 2 вставок в одну команду

Я не мог этого понять: я хочу добавить строку в таблицу-a, и 3 столбца этой строки будут взяты из таблицы-b, а другие 2 столбца будут взяты, например, из текстовых полей ... Этот код не работал. ..

SqlCommand cmd35 = new SqlCommand("INSERT INTO BTmr (Barcode,[Machine Name],[Machine ID]) SELECT Barcode,[Machine Name],[Machine ID] FROM BkmP WHERE barcode like '" + c13 + "%' UNION INSERT INTO BTmr([Repair Cost],[Repair Date],Barcode)values (@cst,@rprd)", connection);

            cmd35.Parameters.AddWithValue("@cst", textBox10.Text);
            cmd35.Parameters.AddWithValue("@rprd", dateTimePicker1.Text);

person S. Corarius    schedule 28.04.2016    source источник
comment
выберите столбцы из таблицы-b перед помещением в таблицу-а, и у вас будут все значения для ввода для таблицы-а.   -  person randominstanceOfLivingThing    schedule 29.04.2016
comment
Ваш выбор должен выполняться вне оператора вставки, чтобы вы считывали значения столбца в переменные.   -  person randominstanceOfLivingThing    schedule 29.04.2016


Ответы (1)


Просто поместите параметры как статические значения в оператор выбора.

SqlCommand cmd35 = new SqlCommand("INSERT INTO BTmr (Barcode,[Machine Name],
    [Machine ID],[Repair Cost],[Repair Date]) SELECT Barcode,[Machine Name],
    [Machine ID],@cst AS [Repair Cost],@rprd AS [Repair Date] FROM BkmP WHERE
    barcode like '" + c13 + "%', connection);

cmd35.Parameters.AddWithValue("@cst", textBox10.Text);
cmd35.Parameters.AddWithValue("@rprd", dateTimePicker1.Text);

Пока вы на нем, параметризуйте это предложение where: https://stackoverflow.com/a/251380/123422

person Paul Abbott    schedule 28.04.2016