1
My project has a form frmAdicionarProduto
to add products to the database containing TextBox
and ComboBox
:
txtProduto
txtQuantidade
cmbTipo
txtValorFornecedor
txtValorFinal
txtLucro
I’m having trouble saving values below 1 integer.
I have problems only with numbers below 1, above 1 can be integer or decimal number I have no problems.
Example 1: 0,99 = error
Example 2: 1,57 = success
Getting value from profit
private void txtValorFinal_TextChanged(object sender, EventArgs e)
{
double lucro; // Criação da variável que ira comportar o valor do lucro
lucro = Convert.ToDouble(txtValorFinal.Text) - Convert.ToDouble(txtValorFornecedor.Text); // Cálculo do lucro e comportando o valor na variável lucro
txtLucro.Text = lucro.ToString("0.00"); // Populando o TextBox txtLucro com o valor da variável lucro
}
Adding the data in the database
string strConn = "Data Source=DESKTOP-AJLR3DB\\SQLEXPRESS;Initial Catalog=DBGestor;Integrated Security=True";
Ado insert = new Ado(strConn);
insert.InsertProduto(txtNomeProduto.Text,
Convert.ToInt32(txtQuantidade.Text),
cmbTipo.Text,
Convert.ToDouble(txtValorFornecedor.Text),
Convert.ToDouble(txtValorFinal.Text),
Convert.ToDouble(txtLucro.Text));
MessageBox.Show("Produto cadastrado com sucesso!", "Sucesso!", MessageBoxButtons.OK);
this.Close();
this.Dispose();
Ado.Cs
string ConectionString;
public void InsertProduto(string nomeProduto, int quantidade, string tipo, double valorFornecedor, double valorFinal, double lucro)
{
SqlConnection conn = new SqlConnection(ConectionString);
string cmdString = "INSERT INTO produtos VALUES ('" + nomeProduto.ToString() +
"', '" + quantidade +
"', '" + tipo.ToString() +
"', '" + valorFornecedor +
"', '" + valorFinal +
"', '" + lucro + "')";
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(cmdString, conn);
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex; // Essa linha é setada com o erro descrito no fim da pergunta
}
finally
{
conn.Close();
conn.Dispose();
}
}
By clicking the button to add the data, you are returning me the following error:
System.Data.Sqlclient.Sqlexception: 'Error converting varchar data type into Numeric.'
OBS: I left some comments in the codes to facilitate understanding.
See if this doesn’t help you What kind of data (double, float or decimal) should I use to represent currency in . NET with C#?
– Barbetta