[英]C# MYSQL - I can't insert a boolean value
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值。
使用參數化查詢
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的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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.