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