Ошибки сохранения данных в БД
От: atlant83  
Дата: 05.01.10 19:46
Оценка:
Здравствуйте!
Разрабатываю приложение в среде VS, язык С#, встраиваемая база данных Firebird Embedded.
1) При сохранении данных в БД типа string возникает ошибка, если пользователь вводит в TextBox текст русскими буквами, то при сохранении данных в БД возникает сообщение об ошибке «Ошибка конвертирования текста команды в ib-charset [NONE]». Если текст введен латинскими буквами, то ошибок при сохранении и извлечении данных не возникает. Подскажите, пожалуйста, как работать с кириллицей при сохранении в БД?
2) Также, если необходимо сохранить данные в поле типа float или numeric при сохранении возникает ошибка конвертирования из string.
Ниже представлены 4 варианта сохранения числа. В 3-х случаях не удается сохранить число в БД.
2.1) 1-й случай. Возникает ошибка.

float price;
price = Convert.ToSingle(textBox1.Text);
cmd.CommandText = @"INSERT INTO ""TABLE1"" (""PRICE"") values(" + price + @")";


2.2) 2-й случай. Возникает ошибка.
//В этом случае ошибка возникает именно в момент сохранения в БД. В процессе конвертирования из string в float с помощью функции ToSingle() и дальнейших вычислений с переменной price ошибок не возникает.

float price, price1;
price = Convert.ToSingle(textBox1.Text);
price1 = F4.2;
price = 3*price + price1;
cmd.CommandText = @"INSERT INTO ""TABLE1"" (""PRICE"") values(" + price + @")";


2.3) 3-й случай. Возникает ошибка.
//Разделитель между целой и дробной частью числа – запятая.

string price;
price = “15,75”;
cmd.CommandText = @"INSERT INTO ""TABLE1"" (""PRICE"") values(" + price + @")";


2.4) 4-й случай. Ошибки не возникает.
//Разделитель между целой и дробной частью числа – точка.

string price;
price = “15.75”;
cmd.CommandText = @"INSERT INTO ""TABLE1"" (""PRICE"") values(" + price + @")";


Каким образом следует работать с полями типа float, numeric, decimal таким образом, чтобы брать введенные пользователем дробные числа (например, в данном случае стоимость, т.е. целая часть – рубли, дробная часть – копейки), производить с ними арифметические операции и сохранять в БД.

Заранее спасибо всем ответившим.


06.01.10 01:48: Перенесено модератором из 'Алгоритмы' — Кодт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.