Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Задание типа параметра при записе в БД


Автор: belka0107 8.9.2013, 13:03
Ситуация следующая: генерирую строку для апдейта записи получается такая:
Код

UPDATE detail SET name = @NAME, code = @CODE, material1_id = @M_ID1, material1_weight = @M_QTY1, material2_id = @M_ID2, material2_weight = @M_QTY2, material3_id = @M_ID3, material3_weight = @M_QTY3, material4_id = @M_ID4, material4_weight = @M_QTY4, material5_id = @M_ID5, material5_weight = @M_QTY5 WHERE id = @ID


Параметры задаю при помощи
Код

cmd.Parameters.AddWithValue("@M_ID" + i, cm.SelectedValue);
cmd.Parameters.AddWithValue("@M_QTY" + i, num.Value);

Получается следующая команда:
Код

UPDATE detail SET name = Гайка, code = 4545, material1_id = 3, material1_weight = 55,49, material2_id = 3, material2_weight = 0,001, material3_id = 2, material3_weight = 0,003, material4_id = 1, material4_weight = 0,004, material5_id = 2, material5_weight = 0,004 WHERE id = 2


В базе поля с весами типа real.
В итоге при выполнении команды появляется excepption, из-за того что разделитель в значениях весов - запятая, но при добавлении все работает.
Добавление апострофов также не помогло.
Прошу помощи побороть эту проблему

Автор: jonie 12.9.2013, 14:11
cmd.Parameters.Add() испльзуйте - там есть перегрузка:
Код

public SqlParameter Add(
    string parameterName,
    SqlDbType sqlDbType
)
укахите явно тип какой вам нужен и уже добавленному параметру установите значение.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)