[英]How can I get value of a specific cell in DataTable in c#?
我是C#和使用Windows窗体的新手。
我有一个dataTable,如屏幕快照所示,我想基于Button_Name
列值在button_Text
列中获取特定单元格的值,并将其保存在字符串中。 我知道我可以使用以下代码:
string s = DataTable.Rows[2][1];
但是我不想使用它,因为我不想在方括号之间使用数字来索引单元格值,而是想使用Button_Name
列值和button_Text
列名来索引单元格值。 例如:
string s = DataTable.Rows[ButtonUC1_3][Button_Text]; // but it gives error : "Argument1: can not convert from string to int"
我希望它足够清楚。 有人知道如何实现这一目标吗? 谢谢
使用LINQ to DataSet在那里您可以使用列名
string value = dataTable.AsEnumerable()
.Where((row) => row.Field<string>("button_Name").Equals("ButtonUC_1"))
.Select((row) => row.Field<string>("button_Text"))
.FirstOrDefault();
这里的Rows必须是Int格式,但是允许使用Columns字符串,下面是错误
string s = DataTable.Rows["ButtonUC1_3"]["Button_Text"];
正确的形式是
string s = DataTable.Rows[2]["Button_Text"];
它将给出单元格的值。
DataTable 行没有名称,仅按数字索引。 如果要通过指定的名称访问行,则需要使用自己的映射,例如var rowMapping = new Dictionary<string,int>() { { ButtonUC1_3, 0}, ... }
,然后访问DataTable像这样的DataTable.Rows[rowMapping[ButtonUC1_3]][Button_Text]
。
显然,这不是唯一的方法,您可以定义一个枚举,整数常量等。这完全取决于您拥有多少行以及如何使用DataTable。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.