Member 13174973 Ответов: 1

У меня есть три таблицы основные сведения других для кодирования ishow как его выбрать, но при обновлении у меня проблема


COD для выбран
УМК.Свойства commandtext = "выбрать input_tb.f_note как ملاحظات', input_tb.Работник как "اسم المستلم", input_tb.unit1 как "الوحدة", input_tb.matter_q как "العدد", input_tb.m_type как "نوع الفقرة", Matter_tb.matter как "الفقرة", input_tb.E_date как "التاريي", input_tb.curr как "الوحدة", input_tb.price Как "المبلغ', place_tb.work_place как' اسم الموقع', input_tb.ID как 'الادخال رقم от input_tb внутреннее соединение Place_tb на input_tb.place_no = Place_tb.place_no внутреннее соединение Matter_tb на input_tb.matter_no = Matter_tb.m_no ";

Я хочу обновить данные из datagridview, который выдает ошибку несоответствия данных deci=ouse я показываю текст в datagridview и должен поместить код текста в этот colomun в update

Что я уже пробовал:

cmd.CommandText = "ОБНОВЛЕНИЕ input_tb SET place_no = '" + update1.SelectedRows [0] .Cells [9] .Value + "', price = '" + update1.SelectedRows [0] .Cells [8] + "', curr = '"+ update1.SelectedRows [0] .Cells [7] +"', E_date = '"+ update1.SelectedRows [0] .Cells [6] +"', m_type = '"+ update1.SelectedRows [0 ] .Cells [4] + "',atter_q ='" + update1.SelectedRows [0] .Cells [3] + "', unit1 ='" + update1.SelectedRows [0] .Cells [2] + "', Worker = '"+ update1.SelectedRows [0] .Cells [1] +"', f_note = '"+ update1.SelectedRows [0] .Cells [0] +"' FROM input_tb INNER JOIN Place_tb ON input_tb.place_no = Place_tb .place_no ВНУТРЕННЕЕ СОЕДИНЕНИЕ Matter_tb ON input_tb.matter_no = Matter_tb.m_no WHERE ID = "+ update1.SelectedRows [0] .Cells [" رقم الادخال "]. Value;

[no name]

Используйте правильный параметризованный запрос, и ваша проблема, скорее всего, исчезнет сама собой.

1 Ответов

Рейтинг:
2

CHill60

Используйте параметризованный запрос, такой как этот (непроверенный):

var cmd = new SqlCommand();
cmd.CommandText = "UPDATE input_tb SET place_no=@place,price=@price,curr=@curr,E_date=@E_date,m_type=@m_type,matter_q=@matter_q,unit1=@unit1',Worker=@Worker,f_note=@f_note FROM input_tb INNER JOIN Place_tb ON input_tb.place_no = Place_tb.place_no INNER JOIN Matter_tb ON input_tb.matter_no = Matter_tb.m_no WHERE ID=@ID";
cmd.Parameters.AddWithValue("@place", update1.SelectedRows[0].Cells[9].Value);
cmd.Parameters.AddWithValue("@price", update1.SelectedRows[0].Cells[8].Value);
cmd.Parameters.AddWithValue("@curr", update1.SelectedRows[0].Cells[7].Value);
cmd.Parameters.AddWithValue("@E_date", update1.SelectedRows[0].Cells[6].Value);
cmd.Parameters.AddWithValue("@m_type", update1.SelectedRows[0].Cells[4].Value);
cmd.Parameters.AddWithValue("@matter_q", update1.SelectedRows[0].Cells[3].Value);
cmd.Parameters.AddWithValue("@unit1", update1.SelectedRows[0].Cells[2].Value);
cmd.Parameters.AddWithValue("@Worker", update1.SelectedRows[0].Cells[1].Value);
cmd.Parameters.AddWithValue("@f_note", update1.SelectedRows[0].Cells[0].Value);
cmd.Parameters.AddWithValue("@ID", update1.SelectedRows[0].Cells["رقم الادخال"].Value);

Первое, что я замечаю, это то, что вы не использовали Cells[5] - только ты можешь сказать, правильно ли это.

Использование таких параметров, вероятно, решит вашу проблему, так как параметры будут принимать правильный тип.