繁体   English   中英

如何在C#中的DataTable中获取特定单元格的值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM