[求助] c#中linq操作datatable

zhongheijituan 2014-07-19 05:23:10
XX_Name XX_guige XX_NO
----------------------------------------------------
A 500*300*300 kx-507
A 500*300*300 kx-507
A 500*300*400 kx-507
A 500*300*400 kx-507
B 1200*650*780 kx-05

datatable中的数据如上,现在通过linq得到了xx_Name列去重后的结果,放在了combobox中,现在想通过更改combobox的时候,动态的得到XX_No对应的值,求大大指点一下,linq应该怎么实现
...全文
349 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhongheijituan 2014-07-21
  • 打赏
  • 举报
回复
引用 12 楼 diaodiaop 的回复:
版主给你的 是泛型的方式..很明显 x.Field<string>("xx_Name") 才是datatable的方式..

var xxoo= dt.AsEnumerable().First(x=> x.Field<string>("xx_Name") == )).Field<string>("ooxx");
我只不过 给你简写了 给你个思路而已...
哦,是我太菜,没整明白,不好意思啊,下次补偿了
by_封爱 版主 2014-07-20
  • 打赏
  • 举报
回复
版主给你的 是泛型的方式..很明显 x.Field<string>("xx_Name") 才是datatable的方式..

var xxoo= dt.AsEnumerable().First(x=> x.Field<string>("xx_Name") == )).Field<string>("ooxx");
我只不过 给你简写了 给你个思路而已...
zhongheijituan 2014-07-20
  • 打赏
  • 举报
回复
引用 9 楼 diaodiaop 的回复:
用我代码居然不给我分....F了.
感谢你的热心帮助,但的确是用的【caozhy】的答案,请仔细看看哈,绝对是按照公正的方式给的
zhongheijituan 2014-07-20
  • 打赏
  • 举报
回复
DataTable dt = new DataTable(); dt.Columns.Add("xx_Name", System.Type.GetType("System.String")); dt.Columns.Add("xx_NO", System.Type.GetType("System.String")); dt.Rows.Add("A", "kx-507"); dt.Rows.Add("A", "kx-507"); dt.Rows.Add("A", "kx-507"); dt.Rows.Add("B", "kx-825"); ///////////////////////////////////////////////////////////////方法一:更简洁////////////////////////////////////////////////////////////////////////////////////// Console.WriteLine(dt.Rows.OfType<DataRow>().First(x => x.Field<string>("xx_Name") == "A").Field<string>("xx_NO")); //////////////////////////////////////////////////////////////方法二:linq 更清晰///////////////////////////////////////////////////////////////////////////////// var query = from dr in dt.AsEnumerable() where dr.Field<string>("xx_Name") == "A" select dr; Console.WriteLine(query.First().Field<string>("xx_NO"));
by_封爱 版主 2014-07-20
  • 打赏
  • 举报
回复
用我代码居然不给我分....F了.
zhongheijituan 2014-07-20
  • 打赏
  • 举报
回复
非常感谢版主大大,在你的帮助下,我得到了想要的东西 这很可能是其中的答案之一: 答案:dt.Rows.OfType<DataRow>().First(x => x.Field<string>("xx_Name") == combobox.Text).Field<string>("xx_NO") 结贴!
zhongheijituan 2014-07-20
  • 打赏
  • 举报
回复
引用 5 楼 zhongheijituan 的回复:
[quote=引用 3 楼 caozhy 的回复:] dt.First(x => x.XX_Name == comboBox1.Value).XX_NO
非常感谢版主大大亲自出马 我没有找到datatabel的first方法,请版主大大明示一下[/quote] 这么早起啊,马上去试试,不整好,都觉得不好意思啊
threenewbee 2014-07-20
  • 打赏
  • 举报
回复
dt.OfType<DataRow>().First()....
zhongheijituan 2014-07-20
  • 打赏
  • 举报
回复
引用 3 楼 caozhy 的回复:
dt.First(x => x.XX_Name == comboBox1.Value).XX_NO
非常感谢版主大大亲自出马 我没有找到datatabel的first方法,请版主大大明示一下
zhongheijituan 2014-07-20
  • 打赏
  • 举报
回复
引用 2 楼 diaodiaop 的回复:

.where(d=>d.files<sring>("XX_Name")=combobox1.text);
这样写的话,我如何指定我要的那个字段,XX_NO,昨天也是纠结于此,赐教。
threenewbee 2014-07-19
  • 打赏
  • 举报
回复
dt.First(x => x.XX_Name == comboBox1.Value).XX_NO
by_封爱 版主 2014-07-19
  • 打赏
  • 举报
回复

.where(d=>d.files<sring>("XX_Name")=combobox1.text);
我姓区不姓区 2014-07-19
  • 打赏
  • 举报
回复
comboBox1.ValueMember = "XX_NO"; 这样在更改combobox的时候用comboBox1.SelectedValue应该就能获取到XX_NO的值了吧

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧