2017-01-06 9 views
1
私はOLEDBデータベースからユーザーデータを引き出します検索オプションを作成しようとしています

、それはしかし 結果のようなもので動作します:期待される結果のようなルックスをしまし必要がありますがasp.netで検索機能を正しく印刷するにはどうすればよいですか?

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の問題であることを意味するかどうかを判断するために、デバッグモードとブレークポイントを使用していました。

+0

期待された結果であるあなたが – Null

+0

は完全なコードが含まれるように、それを編集した結果を表示するために使用されてきた完全なコード:) – Itay080

+0

を入力してくださいのようなルックスをしたでしょうか? – Null

答えて

1

adminフィールドは、その場合には、あなたがそれを回避し、falseを返すことができ、はDBNullかもしれません:

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

EDIT

あなたが必要なすべてのインスタンスを設定することです,セルおよびラベル内側ループ。

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); 
+0

提案していただきありがとうございますが、デバッグモードでブレークポイントでコードを実行した後、ラベルに必要な値が表示されますが、UIに表示されません。 fiあなたはDBNullではありません – Itay080

+0

@ Itay080更新をチェックしてください(EDIT) – Null

+0

うわー、ありがとうございます:D私はコードの違いを得ることはできませんが、違いを説明してくださいできますか? – Itay080

関連する問題