2013-08-15 4 views
1

숫자에 10 진수를 추가하려고합니다. 예 : 1.45, 46.12하지만 예외가 있습니다.Parameters.AddWithValue에 double을 넣을 수 없습니다.

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); 

예외 메시지 : "입력 문자열의 형식이 잘못되었습니다."

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

하지만 float로서 사용자가 직접 값을 넣어 조금 까다 롭습니다 전에 제어없이 : 나는 System.Data.SqlServerCe를

+1

을 나는 사람들이 더 나은 당신을 도울 수 있도록 명시 적으로 질문을 명시한다고 생각합니다. – Mastergeek

+1

무슨 예외입니까? ... Pls가 세부 정보를 추가합니다. –

답변

0

을 사용하고 적어도 당신은 같은 것을 사용한다. 당신이 시도 할 수

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

으로 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

관련 문제