2011-02-27 43 views
1

我正在通過代碼創建一個標籤。我想通過一個返回一個DataTable的函數來填充這個標籤。該DataTable在返回中有1行和1列。如何顯示來自Datatable的標籤文本?

這是我的代碼:

Label1.??? = Repository.Instance.ReturnScore(ddlPlayer1.ToString(), ddlPlayer2.ToString()); 

ReturnScore是給我值作爲數據表。我應該如何獲得它的價值?

任何幫助?

回答

2
Label1.Text = Repository.Instance.ReturnScore(ddlPlayer1.ToString(), ddlPlayer2.ToString()).Rows[0][0].ToString(); 
2

試試這個

DataTable table = Repository.Instance.ReturnScore(ddlPlayer1.ToString(), ddlPlayer2.ToString()); 
object value = table.Rows[0][0]; 
Label1.Text = value == DBNull.Value ? "" : value.ToString() ; 

這將返回第一行的第一個值。

+0

它應該是'table.Rows [0] [0] .ToString()'我想。 – 2011-02-28 00:05:54

+0

是的....這工作正常!謝謝.. – 2011-02-28 00:07:08

+0

@StackOverflowException,你是對的,它需要被轉換爲一個字符串。它還需要在那裏進行DBNull檢查。 – 2011-02-28 01:35:43

0

DataTable有一個Rows屬性,行返回的每個Row都有一個索引器,它產生該行所在列中包含的值。既然你說會有隻有一個行和一列,你可以這樣做:

DataTable table = Repository.Instance.ReturnScore(ddlPlayer1.ToString(), ddlPlayer2.ToString()); 
DataRow row = table.Rows[0]; 
Label1.Text = row[0]; 

或更簡潔:

Label1.Text = Repository.Instance.ReturnScore(ddlPlayer1.ToString(), ddlPlayer2.ToString())[0][0]; 
+0

行具有「數組屬性」不完全準確。它被稱爲**索引器**。 – 2011-02-28 01:37:26

+0

更正 - 謝謝指出。 – 2011-02-28 02:46:18

-1

我不記得確切的代碼,但我認爲它應該是這樣的:

dt.Rows[index]["columName"]