hello all
I hope there someone to help ,to point what mistake i have done ,thank you
the error message is
ex.Message = "Incorrect decimal value: '4000000,00' for column 'Jumlah' at row 1"


My code always automatically add ",00" at the end of decimal jmldec (only if ccstr=="id-ID")

here is my code:

string ccstr=CultureInfo.CurrentCulture.Name;

 if (ccstr == "id-ID")
 jmldec = decimal.Parse(tbjumlah.Text, CultureInfo.GetCultureInfo("id-ID"));
 if (ccstr == "en-US")
 jmldec = decimal.Parse(tbjumlah.Text);// there is no addition ",00"  here
string insert = "insert into TblKwitansi(No,Nama,Jumlah)values('" + tbNo.Text + "','" + tbnama.Text +  "','" + jmldec +  "')";//but here jmldec is added automatically with ",00" 
 MySqlCommand cmdinsert = new MySqlCommand(insert, conn);
 int iint = cmdinsert.ExecuteNonQuery();

 if (iint == 1)
 MessageBox.Show("done", "info");

Recommended Answers

All 3 Replies

int iint = cmdinsert.ExecuteNonQuery();

hmmm? , put all your code and insert into code tags

You're trying to use a culture specific decimal format. Use a . instead as your decimal point and instead convert to the local culture format for display.

Your other option is to change the locale of the database from its default en-US setting. Instructions on how to do this can be found on the MySQL reference site, however, this means you won't be able to store it in en-US format (10.1)

Problem is that you are trying to insert a string into a decimal field in the database. Remove the single quote (') marks from your SQL statement or learn to use Parameters

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.