MSDN.WhiteKnight - Stack Overflow answers
Ответ на "System.Data.SqlClient.SqlException при добавлении FLOAT значения с дробной частью"
Answer 1328622
Это типичная ошибка, вызванная использованием String.Format для вставки переменных в запрос. Код типа
$"{a}"
скомпилируется вString.Format("{0}",a.ToString())
. Как правильно догадался Akina, преобразование float в string по умолчанию использует разделитель текущей локализации, поэтому на русской системе, где разделитель - запятая, он выдаст ошибку. Для правильной работы с переменными нужно использовать механизм параметров:myCommand = new SqlCommand("INSERT INTO mytable (a,b) VALUES (@a,@b)", conn); myCommand.Parameters.AddWithValue("a",a); myCommand.Parameters.AddWithValue("b",b);
Помимо независимости от локализации, такой подход устраняет излишние операции соединения строк и преобразования чисел в строку на клиенте (ибо на сервере для вставки в базу все равно все должно быть разобрано до чисел).
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.