1. 当datatable 已存在于一个dataset中时,可以使用 ds.tables.add(dt.copy()) 来向dataset 中添加datatable;

2. 当datarow已存在于一个dtA中时,可以使用dtB.importRow(dr)来向dtB中添加datarow;

2. 在查询表格时,如果想查询两个字段,只当两个字段都相同时才过滤重复保留唯一,否则不过滤,这是可以这样使用distinct:

select  distinct  a, b  from  table1

3. 今天在往devexpress 中的treelist 控件中添加节点时,发现虽然添加上了但是界面不显示节点值,解决办法是在设计器里先给treelist添加一个列(当然,我的需求是只有一列的情况下),然后隐藏它即可。为什么要添加一列呢?因为在后台代码里我们是这样写的:

TreeListNode FirstLevelNode = treeList1.AppendNode(null, root);
FirstLevelNode.SetValue(treeList1.Columns[], drFirstLevelNode["StateName"].ToString().Trim());

这里的  treeList1.Columns[0]  就是我们添加的那一行(我自己理解的,不知道对不对,反正实践显示不添加就没法显示)。

最后附上完整的往dev treelist 中根据数据库中数据动态添加节点代码:

WellDAL dalWell = new WellDAL();
TreeListNode root = treeList1.AppendNode(null, null);
root.SetValue(treeList1.Columns[], "本地数据库");
//第一层节点
DataTable dtFirstLevelNode = new DataTable();
dtFirstLevelNode = dalWell.GetData("StateName");
foreach (DataRow drFirstLevelNode in dtFirstLevelNode.Rows)
{
TreeListNode FirstLevelNode = treeList1.AppendNode(null, root);
FirstLevelNode.SetValue(treeList1.Columns[], drFirstLevelNode["StateName"].ToString().Trim());
//第二层节点
DataTable dtSecondLevelNode = new DataTable();
dtSecondLevelNode = dalWell.GetData("StateName", "FieldName");
foreach (DataRow drSecondLevelNode in dtSecondLevelNode.Rows)
{
if (drSecondLevelNode["StateName"].ToString().Trim() == drFirstLevelNode["StateName"].ToString().Trim())
{
TreeListNode SecondLevelNode = treeList1.AppendNode(null, FirstLevelNode);
SecondLevelNode.SetValue(treeList1.Columns[], drSecondLevelNode["FieldName"].ToString().Trim());
//第三层节点
DataTable dtThirdLevelNode = new DataTable();
dtThirdLevelNode = dalWell.GetData("StateName", "FieldName", "BlockName");
foreach (DataRow drThirdLevelNode in dtThirdLevelNode.Rows)
{
if (drThirdLevelNode["StateName"].ToString().Trim() == drFirstLevelNode["StateName"].ToString().Trim() && drThirdLevelNode["FieldName"].ToString().Trim() == drSecondLevelNode["FieldName"].ToString().Trim())
{
TreeListNode ThirdLevelNode = treeList1.AppendNode(null, SecondLevelNode);
ThirdLevelNode.SetValue(treeList1.Columns[], drThirdLevelNode["BlockName"].ToString().Trim());
//第四层节点
DataTable dtForthLevelNode = new DataTable();
dtForthLevelNode = dalWell.GetData("StateName", "FieldName", "BlockName", "WellName");
foreach (DataRow drForthLevelNode in dtForthLevelNode.Rows)
{
if (drForthLevelNode["StateName"].ToString().Trim() == drFirstLevelNode["StateName"].ToString().Trim() && drForthLevelNode["FieldName"].ToString().Trim() == drSecondLevelNode["FieldName"].ToString().Trim() && drForthLevelNode["BlockName"].ToString().Trim() == drThirdLevelNode["BlockName"].ToString().Trim())
{
TreeListNode ForthLevelNode = treeList1.AppendNode(null, ThirdLevelNode);
ForthLevelNode.SetValue(treeList1.Columns[], drForthLevelNode["WellName"].ToString().Trim());
//第五层节点
DataTable dtFifthLevelNode = new DataTable();
dtFifthLevelNode = dalWell.GetData("StateName", "FieldName", "BlockName", "WellName", "HoleNumber");
foreach (DataRow drFifthLevelNode in dtFifthLevelNode.Rows)
{
if (drFifthLevelNode["StateName"].ToString().Trim() == drFirstLevelNode["StateName"].ToString().Trim() && drFifthLevelNode["FieldName"].ToString().Trim() == drSecondLevelNode["FieldName"].ToString().Trim() && drFifthLevelNode["BlockName"].ToString().Trim() == drThirdLevelNode["BlockName"].ToString().Trim() && drFifthLevelNode["WellName"].ToString().Trim() == drForthLevelNode["WellName"].ToString().Trim())
{
TreeListNode FifthLevelNode = treeList1.AppendNode(null, ForthLevelNode);
FifthLevelNode.SetValue(treeList1.Columns[], drFifthLevelNode["HoleNumber"].ToString().Trim());
}
}
}
}
}
}
}
}
}
treeList1.ExpandAll();

效果图:

10.17小结:table.copy() 和 distinct 查询的更多相关文章

  1. 2019.10.16&17小结

    话说也蛮久没写小结了,主要这两次考试失分严重,还是总结下吧. 10.16 T1 小奇挖矿2 100/0 [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿石交易市 ...

  2. 13.1.17 CREATE TABLE Syntax

    13.1.17 CREATE TABLE Syntax 13.1.17.1 CREATE TABLE ... LIKE Syntax 13.1.17.2 CREATE TABLE ... SELECT ...

  3. legend3---12、DB::table('user_questions')和UserQuestion查询的结果的格式不一样

    legend3---12.DB::table('user_questions')和UserQuestion查询的结果的格式不一样 一.总结 一句话总结: 推荐使用模型查找的方式,可以直接数组方式访问: ...

  4. 5月10日 python学习总结 单表查询 和 多表连接查询

    一. 单表查询  一 语法 select distinct 查询字段1,查询字段2,... from 表名 where 分组之前的过滤条件 group by 分组依据 having 分组之后的过滤条件 ...

  5. 背水一战 Windows 10 (17) - 动画: ThemeTransition(过渡效果)

    [源码下载] 背水一战 Windows 10 (17) - 动画: ThemeTransition(过渡效果) 作者:webabcd 介绍背水一战 Windows 10 之 动画 ThemeTrans ...

  6. 发现struct proc_dir_entry内核3.10.17移到internal中去了,倒

    struct proc_dir_entry 原:2.6.38.8 在#include <linux/proc_fs.h> 现:3.10.17 在fs/proc/internal.h:str ...

  7. Windows 8.1 正式版微软官方原版镜像下载(新增10/17新版下载)

    中文版:中国区OEM预装版本,特定国家版,锁定语言,其它功能和核心版没有区别.简体中文单语言版:锁定语言,其它功能和核心版没有区别.专业版+核心版[零售版][推荐]:镜像内包含专业版(Professi ...

  8. Dell Technology Summit(2018.10.17)

    时间:2018.10.17地点:北京国家会议中心

  9. 10.17 NOIP模拟赛

    目录 2018.10.17 NOIP模拟赛 A 咒语curse B 神光light(二分 DP) C 迷宫maze(次短路) 考试代码 B 2018.10.17 NOIP模拟赛 时间:1h15min( ...

随机推荐

  1. 利用Caffe训练模型(solver、deploy、train_val) + python如何使用已训练模型

    版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/5 ...

  2. Vue.js父与子组件之间传参

    父向子组件传参 例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为html对大小写不敏感,component ...

  3. google map 路线服务

    入门指南 使用 Google Maps JavaScript API 中的路线服务之前,首先要确保在为 Google Maps JavaScript API 设置的同一项目的 Google API C ...

  4. 解决Android Studio出现GC overhead limit exceeded

    方法一: 修改项目目录下的gradle.properties,增加如下配置信息(红色文字中需要根据自己电脑的配置修改内存大小,其余的配置用于加快gradle的编译速度) org.gradle.daem ...

  5. [Python设计模式] 第21章 计划生育——单例模式

    github地址:https://github.com/cheesezh/python_design_patterns 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式 ...

  6. Convert ResultSet to JSON and XML

    public static JSONArray convertToJSON(ResultSet resultSet) throws Exception { JSONArray jsonArray = ...

  7. ionic BUILD FAILED

    BUILD FAILED Total time: 24.572 secs FAILURE: Build failed with an exception. What went wrong: Execu ...

  8. ionic cordova plugin 安装和使用

    注意事项 ionic1需要ng-cordova plugin的使用都需要放到deviceready事件的回调中, 设备准备好了才能设备交互 plugin只有在真机上才有效果, 模拟器(部分)和brow ...

  9. 机器学习中Batch Size、Iteration和Epoch的概念

    Batch Size:批尺寸.机器学习中参数更新的方法有三种: (1)Batch Gradient Descent,批梯度下降,遍历全部数据集计算一次损失函数,进行一次参数更新,这样得到的方向能够更加 ...

  10. C# 中字符串转换成日期

    我们在处理字符串日期格式常用DateTime.Pares() 但是这个形式的转换是相当有限的,有些C#是会不懂你写入的日期格式的如20031231.那么类似 "20100101" ...