有没有一种方法可以通过检索MySqlDataReader布尔值在Visual Studio C#中启用/禁用复选框?

时间:2019-06-15 10:09:18

标签: c# mysql visual-studio type-conversion boolean

此处是堆栈溢出的新功能。 我正在寻找一种使CheckBox1在单击时打开和关闭的方法,而无需标签或.Text,因为在MySQL数据中,相应的值是布尔值。

当我在另一个页面的网格视图中列出我的数据时,该值保持锁定并按预期显示,但是在另一个CRUD页面中,我的复选框配置不正确。

我正在努力寻找一种方法来链接CheckBox1.Checked到Visual Studio中相应的tinyint值。

该复选框将标签值显示为True或False,我还不知道如何使该值打勾我的复选框,以及这是否是考虑代码的正确方法。如果我不够清楚,我深表歉意。

我已经在html对象下面显示了一个试图直接将布尔值检索到复选框的尝试,并显示了实际的读取方法,以便可以尝试正确地读取CheckBox1。

ativo:<asp:Checkbox id="Checkbox1" type="checkbox" runat="server" AutoPostBack="True" ClientIDMode="AutoID" Text=" " TextAlign="Left"></asp:Checkbox><br />
String sql = String.Format("insert into cliente(codigo, nome, email, telefone, senha, ativo) values('{0}','{1}',{2},{3},{4},'{5}')", txtCodigo.Text, txtNome.Text, txtEmail.Text, txtTelefone.Text, txtSenha.Text, (Checkbox1.Checked ? 1 : 0));

protected void read(object sender, EventArgs e)
        {
            try
            {
                MySqlConnection conexao = new MySqlConnection(sc);
                conexao.Open();
                String sql = "select * from cliente where codigo={0}" + txtCodigo.Text;
                sql = String.Format(sql, txtCodigo.Text);
                MySqlCommand comando = new MySqlCommand(sql, conexao);
                MySqlDataReader registro = comando.ExecuteReader();
                if (registro.Read())
                {
                    txtCodigo.Text = registro["codigo"].ToString();
                    txtNome.Text = registro["nome"].ToString();
                    txtEmail.Text = registro["email"].ToString();
                    txtTelefone.Text = registro["telefone"].ToString();
                    txtSenha.Text = registro["senha"].ToString();
                    Checkbox1.Checked.ToString() = registro["ativo"].ToString();
                    lblMensagem.Text = "";
                }
                else
                {
                    lblMensagem.Text = "Registro não encontrado !";
                    limpar();
                }
                conexao.Close();
            }
            catch (Exception err)
            {
                lblMensagem.Text = "Ocorreu um erro tente mais tarde !";
            }
        }

我希望创建,读取和更新此复选框。

1 个答案:

答案 0 :(得分:0)

已检查属性为布尔值 因此您可以像这样将值转换为布尔值:

Checkbox1.Checked = Convert.ToBoolean(registro["ativo"])