布尔选择数组

时间:2019-06-10 09:29:07

标签: c#

我需要一些有关我所拥有代码的帮助。 我有一个数组和布尔选择它给我错误。如果我删除布尔线,则效果很好,但没有选择性别。

private void txt_Name_OnValueChanged(object sender, EventArgs e)
{
    listView1.Items.Clear();
    int numberOfRows = 0;
    try
    {
        SqlCommand cmd = new SqlCommand("select * from workers where name like N'" + txt_Name.Text + "%'", g.con);
        SqlDataAdapter dataapa = new SqlDataAdapter(cmd);
        DataTable DT = new DataTable();
        dataapa.Fill(DT);
        for (int i = 0; i < DT.Rows.Count; i++)
        {
            string[] arr = new string[6];
            arr[0] = DT.Rows[i]["name"].ToString();
            arr[1] = DT.Rows[i]["num"].ToString();
            arr[3] = DT.Rows[i]["job"].ToString();
            arr[4] = DT.Rows[i]["mail"].ToString();
            arr[5] = DT.Rows[i]["worker_Id"].ToString();
            arr[2] = DT.Rows[i]["gender"].ToString();
            if (Convert.ToBoolean(DT.Rows[i]["gender"]) == true) { arr[2] = "Female"; } else { arr[2] = "Male"; }

            ListViewItem item;
            item = new ListViewItem(arr);
            listView1.Items.Add(item);
            numberOfRows++;
        } lb_num.Text = "number of rows = " + numberOfRows + "";
        lb_num.Visible = true;
    }
    catch { MessageBox.Show("Erro de Servidor"); }
}

2 个答案:

答案 0 :(得分:0)

如果您从这段代码DT.Rows[i]["gender"].ToString()中获得“真”或“假”,请尝试bool val = Boolean.Parse(DT.Rows[i]["gender"].ToString()), 然后尝试进行转换

答案 1 :(得分:0)

            arr[2] = DT.Rows[i]["gender"].ToString();
            if (Convert.ToBoolean(DT.Rows[i]["gender"]) == true) { arr[2] = "Female"; } 
            else { arr[2] = "Male"; }

此处无逻辑(Convert.ToBoolean(DT.Rows [i] [“ gender”])== true):DT.Rows [i] [“ gender”]如果返回“ Male”或“ Female”,则会在Owen回答时抛出FormatException。在您的Db中,将值更改为True或false或要将列类型的位类型输入1或0,1,则将true设置为0,将false设为