如何使我的搜索功能 asp.net 正确打印所有内容



我正在尝试创建一个搜索选项,该选项将从我的 OleDb 数据库中提取用户数据,它可以工作,但是结果是这样的:

tripleUser  
tripleUser
tripleUser  False

虽然预期的结果应该如下所示:

tripleUser  False
tripleUser  True
tripleUser  False

如您所见,只打印最后一个用户布尔值,为什么会这样?

int rowCount = dt.Rows.Count;
   for (int i = 0; i < rowCount; i ++)
       {
        TableRow row = new TableRow();
        TableCell cell = new TableCell();
        Label label = new Label();
        while(tReader.Read())
             {
              label.Text = tReader.GetString(0);
              cell.Controls.Add(label);
              row.Cells.Add(cell);
              cell = new TableCell();
              label = new Label();
              label.Text = tReader.GetBoolean(1).ToString();
              cell.Controls.Add(label);
              row.Cells.Add(cell);
              table.Rows.Add(row);
              row = new TableRow();
              cell = new TableCell();                                            
             }
        TableHolder.Controls.Add(table);
       }

我使用调试模式和断点来确定一切是否按预期工作,以及是否一切按预期工作,这意味着这是一个 UI 问题。

admin字段可能是 DBNull,在这种情况下,您可以避免这种情况并返回 false :

 Boolean flag = tReader["admin"] as bool? ?? false;
    if(flag)
    {
        label.Text="True";
    }
    else
    {
        label.Text="False";
    }

编辑

您所需要的只是将实例设置为循环内的单元格标签

row = new TableRow();    
cell = new TableCell();                  
label = new Label();
label.Text = tReader.GetString(0);
cell.Controls.Add(label);
row.Cells.Add(cell);
cell = new TableCell();
label = new Label();
label.Text = tReader.GetBoolean(1).ToString();
cell.Controls.Add(label);
row.Cells.Add(cell);
table.Rows.Add(row);

最新更新