2013-04-12 49 views
0

用途:希望在來自另一個類而不是代碼隱藏類的html網頁上顯示錶。或者如何調用另一個類而不是代碼隱藏類?將while循環中的一個tablecell變量傳遞給另一個類

在「不是所有代碼路徑都返回一個值」的表格單元上出現錯誤。

小碼是在低於

public class SQLscr : Page 
{ 
    protected void creattable(object sender, EventArgs e) 
    {   
     Table Table1 = new Table(); 
     TableRow r = new TableRow(); 
     TableCell tempc = new TableCell();; 
     tempc = CreateaTable.tablecell(tempc); 
     r.Cells.Add(tempc); 
     Table1.Rows.Add(r); 
    } 

}

public class CreateaTable 

{ 公共靜態的TableCell的TableCell(TableCell的三) {

 SqlDataReader myReader = myCommand.ExecuteReader(); 
    while (myReader.Read()){ 
     c.Controls.Add(...); 
     return c; 
    } 
+0

我不得不說,這看起來非常低效的代碼......是否有一個特定的約束迫使你這樣寫?通常您會執行單個數據庫調用,然後從結果集中生成整個表。 – Timmerz

回答

1

的問題是在這裏:

while (myReader.Read()){ 
    c.Controls.Add(new LiteralControl(myReader["startbit_1_2_3"].ToString() + "," + 
      myReader["stream_index"].ToString() + "," +))); 
    return c; 
} 

我懷疑你想返回該循環的第一次迭代。這就是例外情況 - 有可能你不可能碰到那個return c,這就是爲什麼它會給你一個例外,即並不是所有的代碼路徑都返回一個值。

將它移到while循環之外。

while (myReader.Read()){ 
    c.Controls.Add(new LiteralControl(myReader["startbit_1_2_3"].ToString() + "," + 
      myReader["stream_index"].ToString() + "," +))); 
} 
return c; 
+0

驚人的快速反應。我嘗試在while循環的外部返回c。但是,在html頁面上沒有錯誤也沒有值。 – lyon819

+0

@ lyon819您在這裏沒有代碼來診斷這個問題。請爲此問題創建一個單獨的問題,提供更多的上下文。同時,如果這已經解決了這個帖子的問題,你會介意接受我的答案嗎? – tnw

+0

好的。我將爲每個人創建一個示例代碼來進行測試。 – lyon819

相關問題