Member 10525430 Ответов: 2

C# double value отправка SQL-команды


Привет

я хочу попробовать создать sql-команду usinf sql formatter, однако у меня возникла проблема с двойными значениями.
Например, мое значение равно: 1,44
и моя sql-команда: "вставить в REPORT_DETAILS (BIRIM_FIYAT)значения
(1,44)"

я получил ошибку value caount
я думаю, что это о", "как я могу изменить это на".

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

я использую информацию о культуре
поиск Google

Karthik_Mahalingam

показать код для sqlformatter

2 Ответов

Рейтинг:
11

CPallini

Если у вас есть:

double value = 1.44;
затем
String.Format(System.Globalization.CultureInfo.InvariantCulture,"{0}",  value);
дает ожидаемый результат.


Рейтинг:
0

Richard Deeming

НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.

Если вы используете параметризованный запрос, вам не только не придется беспокоиться о проблемах культуры и форматирования, подобных этому, вы также избежите SQL-инъекция[^] факторы уязвимости.

double BIRIM_FIYAT;
if (double.TryParse(input, out BIRIM_FIYAT))
{
    using (var connection = new SqlConnection("..."))
    using (var command = new SqlCommand("INSERT INTO REPORT_DETAILS (BIRIM_FIYAT) VALUES (@BIRIM_FIYAT)", connection))
    {
        command.Parameters.AddWithValue("@BIRIM_FIYAT", BIRIM_FIYAT);
        connection.Open();
        command.ExecuteNonQuery();
    }
}


Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]