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. 让Linux系统开机速度更快的方法

    进行 Linux 内核与固件开发的时候,往往需要多次的重启,会浪费大把的时间. 在所有我拥有或使用过的电脑中,启动最快的那台是 20 世纪 80 年代的电脑.在你把手从电源键移到键盘上的时候,BASI ...

  2. Avizo/Amira应用 - 如何计算面孔率

    对于在Avizo或Amira中如何计算孔隙率,这个太简单,完成孔隙和整体材料的识别,再利用Volume Fraction计算即可获得,这里说的是每一层的面孔率如何计算? 数据导入,选取一个简单的过滤处 ...

  3. 转发:CentOS下tar压缩排除某个文件夹或文件及解压

     一.压缩 一般直接用tar命令打包很简单,直接使用 tar -zcvf test.tar.gz test 即可. 在很多时候,我们要对某一个目录打包,而这个目录下有几十个子目录和子文件,我们需要在打 ...

  4. VS2015 ionic 开发环境配置纪要

    1)第一次安装Tools for Apache Cordova不成功,到Options检查依赖项,缺少Node等,重新下载了32为的nodeJs安装.然后运行VS安装程序,卸载Tools for Ap ...

  5. sqlite基础

    常用命令 sqlite3提供的特殊命令, 以.开头: .help: 帮助 .databases: 列出数据库 .tables: 列出表名 .open dbname: 打开数据库 .save dbnam ...

  6. jmeter 执行python脚本

    jmeter 可以通过Jython 执:行python代码 1.下载Jython jar包:http://www.jython.org/downloads.html 2.把下载的Jython 的jar ...

  7. MySQL利用xtrabackup在线修复或新增从库

    如果数据库的数据量很大,表大小有几十个G,利用mysqldump导出备份会消耗非常长的时间,会对数据库产生不稳定风险,这时可以利用xtrabackup工具在线复制主库文件,利用复制出来的主库文件可以修 ...

  8. Linux零基础入门第五课

    文件的基本操作(下) 文件属性 file命令 语法 >$ file file0 [file1 file2 ...] file命令用于确认文件的类型. 在Linux下,通常并不会严格按照文件扩展名 ...

  9. 解决ubuntu系统中firefox无法播放网页版音乐播放器音乐

    Reference: https://blog.csdn.net/h736131708/article/details/80775382 因为网页版的qq音乐或者网易云音乐都把音频换成了AAC格式,这 ...

  10. ubuntu如何安装或更换内核

    内核是一个系统的灵魂,系统在启动的时候,就是基于相关的内核启动该系统的.我们怎么样更改ubuntu系统的内核并运行它呢? ubuntu18.04LTS 互联网安装内核. 安装内核的步骤非常简单,我们可 ...