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);
}
这是完整的按钮代码,我没有收到任何错误消息.. 我尝试使用带有false / true值的变量,但没有,我总是得到0值。
答案 0 :(得分:5)
使用参数化查询
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();
通过这种方式,MySql的net框架和ADO.NET提供程序可以正确地将您的值传递给数据库引擎。例如,如果您的某个输入文本包含单引号,则代码将因语法错误而失败。而且,如果您有恶意用户,则可能会冒Sql Injection
答案 1 :(得分:3)
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