2013-08-15 3 views
1

Я пытаюсь добавить десятичные числа в числа. Пример: 1.45, 46.12, но я получил исключение.Я не могу добавить double в Parameters.AddWithValue

cn.Open(); 
string sqlquery = ("INSERT INTO table(ID, Name, Price, HowMuch, Localization, Description) VALUES(@ID, @Name, @Price, @HowMuch, @Localization, @Description)"); 
SqlCeCommand cm = new SqlCeCommand(sqlquery, cn); 
cm.Parameters.AddWithValue("@ID", textBox1.Text); 
cm.Parameters.AddWithValue("@Name", textBox2.Text); 
cm.Parameters.AddWithValue("@Price", textBox3.Text); 
cm.Parameters.AddWithValue("@HowMuch", textBox4.Text); 
cm.Parameters.AddWithValue("@Localization", textBox5.Text); 
cm.Parameters.AddWithValue("@Description", textBox6.Text); 

Сообщение об исключении: «Недопустимый формат входной строки». Я использую System.Data.SqlServerCe

+1

Я думаю, вы должны явно указать свой вопрос, чтобы люди могли лучше помочь вам. – Mastergeek

+1

Какое исключение ... Pls добавить более подробную информацию –

ответ

0

По крайней мере, вы должны использовать что-то вроде:

cm.Parameters.AddWithValue("@Price", string.Format("{0:C}", textBox3.Text)); 

Но без какого-либо контроля, прежде чем это немного сложно сразу положить значение пользователя, как поплавок. Тогда что-то вроде:

try 
{ 
    cm.Parameters.AddWithValue("@Price", string.Format("{0:C}", textBox3.Text)); 
} 
catch 
{ 
    /// do something to alert user value is not corretly formatted 
} 
+0

Это не сработало :( – MrEkwador

+0

as ask Precious1tj, можете ли вы больше узнать о своем исключении? – mickro

+0

Это все, что у меня есть. Я могу дать вам HResult, Source и т. Д. если вы хотите. – MrEkwador

0

Вы можете попробовать это: -

SqlCeParameter parameter = new SqlCeParameter(); 
parameter.SqlDbType = SqlDbType.Decimal; 
parameter.Precision = 18; 
parameter.Scale = 0; 
parameter.Value = textBox3.Text; 
cm.Parameters.Add(parameter); 
+0

Я не использую System.Data.SqlClient. – MrEkwador

+0

Я обновил свой ответ. Это помогает? –

+0

У меня проблема с кодом. Я не знаю эту структуру, чтобы иметь возможность изменять свой код. – MrEkwador

Смежные вопросы