c# MYSQL -我不能插入布尔值

本文关键字:插入 布尔值 不能 MYSQL | 更新日期: 2023-09-27 18:14:00

    private void button1_Click(object sender, EventArgs e)
    {
        // Início da Conexão com indicação de qual o servidor, nome de base de dados e utilizar
        /* É aconselhável criar um utilizador com password. Para acrescentar a password é somente
        necessário acrescentar o seguinte código a seguir ao uid=root;password=xxxxx*/
        mConn = new MySqlConnection("Persist Security Info=False; server=localhost;database=FichasReparacao;uid=root");
        // Abre a conexão
        mConn.Open();
        //Query SQL
        MySqlCommand command = new MySqlCommand("INSERT INTO Cliente (nome, email, telefone, blacklist)" +
        "VALUES('" + nome_cli.Text + "','" + email_cli.Text + "','" + telefone_cli.Text + "','" + false + "')", mConn);
        //Executa a Query SQL
        command.ExecuteNonQuery();
        // Fecha a conexão
        mConn.Close();
        //Mensagem de Sucesso
        MessageBox.Show("Gravado com Sucesso!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }

这里是完整的按钮代码,我没有收到任何错误信息。我尝试使用一个变量与假/真值,但没有,我总是得到0值。

c# MYSQL -我不能插入布尔值

使用参数化查询

MySqlCommand command = new MySqlCommand("INSERT INTO Cliente " + 
                      "(nome, email, telefone, blacklist)" + 
                      "VALUES(@nome, @email, @tel, @bl)";
command.Parameters.AddWithValue("@nome",nome_cli.Text);
command.Parameters.AddWithValue("@email", email_cli.Text);
command.Parameters.AddWithValue("@tel", telefone_cli.Text);
command.Parameters.AddWithValue("@bl", 0);
command.ExecuteNonQuery();

这样net框架和ADO。. NET提供程序以正确的方式将您的值传递给数据库引擎。例如,如果您的一个输入文本中包含一个单引号,那么您的代码将会因语法错误而失败。而且,如果您有一个恶意用户,您将面临Sql注入的风险

MySQL不存储true和false, BOOLEAN后面的数据类型是TinyInt(1)

Bool, Boolean: These types are synonyms for TINYINT(1). A value of zero is considered false. Non-zero values are considered true.

我建议省略0