My project has a frmAdicionarProduto
form 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 it may be integer or decimal that I have no problems.
Example 1: 0.99 = Error Example 2: 1.57 = Success
Getting profit value
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 data to 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();
}
}
When I click on the button to add the data, I am returning the following error:
System.Data.SqlClient.SqlException: 'Error converting varchar data type to numeric.'
OBS: I left some comments in the codes to make it easier to understand.