我需要一些有关我所拥有代码的帮助。 我有一个数组和布尔选择它给我错误。如果我删除布尔线,则效果很好,但没有选择性别。
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"); }
}
答案 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设为