2014-03-01 3 views
0

안녕하세요 백엔드에서는 SQL 서버를 사용하여 C#에서 내 ITEM_DETAILS 테이블을 업데이트하고 싶지만 나는 다음과 같은 오류가 무엇입니까이 일을하고 때문자열에서 매개 변수 값을 소수로 변환하지 못했습니다. 기음#?

int x; 

da.UpdateCommand = new SqlCommand("UPDATE ITEM_DETAILS SET [email protected]_NAME,[email protected]_DESCRIPTION,[email protected]_NAME,[email protected],[email protected],[email protected],[email protected]_NUM,[email protected] WHERE [email protected]_MODEL", con); 
da.UpdateCommand.Parameters.Add("@ITEM_NAME", SqlDbType.VarChar).Value = txtItemName.Text; 
da.UpdateCommand.Parameters.Add("@ITEM_DESCRIPTION", SqlDbType.VarChar).Value = txtItemDescription.Text; 
da.UpdateCommand.Parameters.Add("@VENDOR_NAME", SqlDbType.VarChar).Value = txtVendor.Text; 
da.UpdateCommand.Parameters.Add("@QUANTITY", SqlDbType.Int).Value = txtQuantity.Text; 
da.UpdateCommand.Parameters.Add("@RATE", SqlDbType.Money).Value = txtRate.Text; 
da.UpdateCommand.Parameters.Add("@AMOUNT", SqlDbType.Money).Value = txtAmount.Text; 
da.UpdateCommand.Parameters.Add("@INVOICE_NUM", SqlDbType.Int).Value = txtInvoice.Text; 
da.UpdateCommand.Parameters.Add("@DATE", SqlDbType.VarChar).Value = dateTimePicker1.Value; 
da.UpdateCommand.Parameters.Add("@ITEM_MODEL", SqlDbType.VarChar).Value = ds.Tables[0].Rows[bs.Position][0]; 

con.Open(); 
x = da.UpdateCommand.ExecuteNonQuery(); 
con.Close(); 

if (x >= 1) 
{ 
    MessageBox.Show("Record(s) has been updated"); 
} 

: 여기

failed to convert parameter value from a string to a decimal. c# 

은 내 코드입니다 아무도 나 에게이 문제에 대한 해결책을 설명 할 수 있습니까?

+0

필드는 십진수입니까? txt 금액? '예'인 경우 구분 기호가 '1,23'이 아닌 '1.23'과 같은 '포인트'인지 확인하십시오. 공간 또는 다른 문자도 확인하십시오 – Portekoi

+0

[문자열에서 매개 변수 값을 10 진수로 변환하지 못했습니다?] (http://stackoverflow.com/questions/12982208/failed-to-convert-parameter-value-from-a) 가능한 복제본 -string-to-a-decimal) – dcastro

답변

1
da.UpdateCommand.Parameters.Add("@RATE", SqlDbType.Money).Value = txtRate.Text; 
da.UpdateCommand.Parameters.Add("@AMOUNT", SqlDbType.Money).Value = txtAmount.Text; 

통화로 txtRate.Text 및 txtAmount.Text를 구문 분석해야합니다.

string.Format("{0:#.00}", Convert.ToDecimal(myMoneyString)/100); 

우리가에서는 CType() 변환을 사용, VB에서

Convert String to Money를 참조하십시오.

관련 문제