网上有很多说的,试过,都没用。自己研究了一下,解决方案如下:

建立dataview,用dv.rowfilter,就可以取到了,然后TOTABLE即可。

代码如下:(只看中间那几句即可)

  1. private void CreatTable(DataSet dsAll)
  2. {
  3. DataTable dtXH = new DataTable();
  4. dtXH.Columns.AddRange(new DataColumn[] { new DataColumn("xh_id", typeof(System.String)), new DataColumn("a", typeof(System.String)) });
  5. DataTable dtGfr = new DataTable();
  6. dtGfr.Columns.AddRange(new DataColumn[] { new DataColumn("xh_id", typeof(System.String)), new DataColumn("gfr", typeof(System.String)), new DataColumn("gfrsbh", typeof(System.String)) });
  7.  
  8. if (dsAll.Tables.Count > )
  9. {
  10. DataTable dtitem = dsAll.Tables["item"];
  11. DataRow[] dritems = dtitem.Select("xh_id<>''");
  12. foreach (DataRow dr in dritems)
  13. {
  14. DataRow drXH = dtXH.NewRow();
  15. drXH["xh_id"] = dr["xh_id"];
  16. drXH["a"] = dr["a"];
  17. dtXH.Rows.Add(drXH);
  18. }
  19. DataTable dtChild = dsAll.Tables["aChild"];
  20. //解决方案:建立dataview,用dv.rowfilter,就可以取到了
  21. DataView dv = dtitem.DefaultView;
  22. foreach (DataRow dr in dtChild.Rows)
  23. {
  24. int itemid = Int32.Parse(dr["item_id"].ToString());
  25. int aChildid = Int32.Parse(dr["aChild_id"].ToString());
  26. string xh_id = "";
  27.  
  28. dv.RowFilter = string.Format("item_Id = {0}", itemid);
  29. DataTable dttt = dv.ToTable();
  30. //这么是查不到的
  31. //DataRow[] drxhid = dtitem.Select(dv.RowFilter);
  32. //if (drxhid.Length > 0)
  33. //{
  34. // xh_id = ((DataRow)drxhid[0])["xh_id"].ToString();
  35. //}
  36. if (dttt.Rows.Count > )
  37. {
  38. xh_id = dttt.Rows[]["xh_id"].ToString();
  39. }
  40. DataRow[] drChilds = dtitem.Select("aChild_id='" + aChildid + "'");
  41. foreach (DataRow drChild in drChilds)
  42. {
  43. DataRow drgfr = dtGfr.NewRow();
  44. drgfr["xh_id"] = xh_id;
  45. drgfr["gfr"] = drChild["gfr"].ToString();
  46. drgfr["gfrsbh"] = drChild["gfrsbh"].ToString();
  47. dtGfr.Rows.Add(drgfr);
  48. }
  49. }
  50. }
  51. }

希望对大家有所帮助!

关于DataTable.Select不到数据的一种解决方案的更多相关文章

  1. DataTable.Select筛选过滤数据返回DataRow[]转为DataTable添加到DataSet

    问题还原,如图所示,我们要筛选所有SHDP 为北京翠微KR的数据. 1. 筛选DataTable微软为我们提供了一个方法DataTable.Select(),其用法如下: 1)  Select()—— ...

  2. neo4j批量导入数据的两种解决方案

    neo4j批量导入数据有两种方法,第一种是使用cypher语法中的LOAD CSV,第二种是使用neo4j自带的工具neo4j-admin import. LOAD CSV 导入的文件必须是csv文件 ...

  3. MyBatis模糊查询不报错但查不出数据的一种解决方案

    今天在用MyBatis写一个模糊查询的时候,程序没有报错,但查不出来数据,随即做了一个测试,部分代码如下: @Test public void findByNameTest() throws IOEx ...

  4. C# DataTable.Select() 筛选数据

    有时候我们需要对数据表进行筛选,微软为我们封装了一个公共方法, DataTable.Select(),其用法如下: Select() Select(string filterExpression) S ...

  5. SELECT INTO和INSERT INTO SELECT的区别 类似aaa?a=1&b=2&c=3&d=4,如何将问号以后的数据变为键值对 C# 获取一定区间的随即数 0、1两个值除随机数以外的取值方法(0、1两个值被取值的概率相等) C# MD5 加密,解密 C#中DataTable删除多条数据

    SELECT INTO和INSERT INTO SELECT的区别   数据库中的数据复制备份 SELECT INTO: 形式: SELECT value1,value2,value3 INTO Ta ...

  6. SQL Server游标 C# DataTable.Select() 筛选数据 什么是SQL游标? SQL Server数据类型转换方法 LinQ是什么? SQL Server 分页方法汇总

    SQL Server游标   转载自:http://www.cnblogs.com/knowledgesea/p/3699851.html. 什么是游标 结果集,结果集就是select查询之后返回的所 ...

  7. Datatable的查找和排序(Datatable.Select)

    Datatable  是一种常用的数据结构.数据类型有点类似于数据库中的表结构.在没有使用优秀的orm框架前,大部分的数据库的数据都是先变为Datatable 然后再通过代码转换变成 object. ...

  8. 在DataTable中执行DataTable.Select("条件")返回DataTable;

    转:http://blog.csdn.net/hcf_force/article/details/7779062 1.在DataTable中执行DataTable.Select("条件&qu ...

  9. 去除DataTable重复数据的三种方法

    业务需求 最近做一个把源数据库的数据批次导出到目标数据库.源数据库是采集程序采集而来的原始数据库,所以需要对其进行一些处理(过滤一些为空,长度太短或太长,非法字符,重复数据)然后在进行入库. 其中要避 ...

随机推荐

  1. BZOJ 2424 订货(贪心+单调队列)

    怎么题解都是用费用流做的啊...用单调队列多优美啊. 题意:某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月初 ...

  2. BZOJ 1923 外星千足虫(bitset优化线性基)

    题意:给出m次n个千足虫的足数信息,确定在第几次测试后可以确定每个千足虫的来历. 我们可以观察到每个测试结果具有异或后依然成立的性质,于是实际上我们只需要从头到尾确定有n个线性相关的向量是在哪一个测试 ...

  3. CSS布局-垂直居中问题

    在前端页面的布局方面,很多时候需要用到垂直居中,如果父集元素或子元素的高度是固定的那么垂直居中可以用line-height或者定位 top:50%:margin-top:- height/2 px:实 ...

  4. QT uic rcc moc 命令行使用

    QT uic rcc moc 命令行使用 PS C:\Users\lsgx> uic.exe --help Usage: C:\Qt\Qt5.5.1\5.5\msvc2012\bin\uic.e ...

  5. 【JavaScript】离线应用与客户端存储

    一.前言        这章非常重要,由于之后需要负责平台手机APP的日后维护,如何让用户在离线状态下正常使用,以及联网后的数据合并变得非常重要. 二.内容        离线检测 navigator ...

  6. 【JavaScript】Json

    一.前言        接着上一章的内容,继续js的学习. 二.内容        解析与序列化 JSON.stringify() —— 将js对象序列化为JSON字符串,接收三个参数:1.js对象2 ...

  7. 使用SetupDI* API列举系统中的设备

    原文链接地址:https://blog.csdn.net/clteng/article/details/801012?utm_source=blogxgwz8 在Windows系统中提供一组有用的函数 ...

  8. 洛谷 P4240 毒瘤之神的考验 解题报告

    P4240 毒瘤之神的考验 题目背景 \(\tt{Salamander}\)的家门口是一条长长的公路. 又是一年春天将至,\(\tt{Salamander}\)发现路边长出了一排毒瘤! \(\tt{S ...

  9. 【agc016D】XOR Replace

    Portal --> agc016D Description ​ 一个序列,一次操作将某个位置变成整个序列的异或和,现在给定一个目标序列,问最少几步可以得到目标序列 ​ Solution ​ 翀 ...

  10. Work at DP

    转载请注明出处:http://www.cnblogs.com/TSHugh/p/8858805.html Prepared: (无notes的波兰题目的notes见我的波兰题目补全计划)BZOJ #3 ...