2011-02-27 44 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"]