代码

public void Test()
{
#region 初始化数据
/* 数据
张三 语文 34.00
张三 数学 58.00
张三 英语 61.00
李四 语文 45.00
李四 数学 87.00
李四 英语 74.00
王五 语文 68.50
王六 数学 83.50
宋王 数学 75.50
*/
DataTable resultDt = new DataTable();
resultDt.Columns.AddRange(new DataColumn[]
{
new DataColumn("name", typeof(string)),
new DataColumn("subject", typeof(string)),
new DataColumn("score", typeof(double))
});
DataRow row1 = resultDt.NewRow(); row1.ItemArray = new object[] { "张三", "语文", 34.00 }; resultDt.Rows.Add(row1);
DataRow row2 = resultDt.NewRow(); row2.ItemArray = new object[] { "张三", "数学", 58.00 }; resultDt.Rows.Add(row2);
DataRow row3 = resultDt.NewRow(); row3.ItemArray = new object[] { "张三", "英语", 61.00 }; resultDt.Rows.Add(row3);
DataRow row4 = resultDt.NewRow(); row4.ItemArray = new object[] { "李四", "语文", 45.00 }; resultDt.Rows.Add(row4);
DataRow row5 = resultDt.NewRow(); row5.ItemArray = new object[] { "李四", "数学", 87.00 }; resultDt.Rows.Add(row5);
DataRow row6 = resultDt.NewRow(); row6.ItemArray = new object[] { "李四", "英语", 74.00 }; resultDt.Rows.Add(row6);
DataRow row7 = resultDt.NewRow(); row7.ItemArray = new object[] { "王五", "语文", 68.50 }; resultDt.Rows.Add(row7);
DataRow row8 = resultDt.NewRow(); row8.ItemArray = new object[] { "王六", "数学", 83.50 }; resultDt.Rows.Add(row8);
DataRow row9 = resultDt.NewRow(); row9.ItemArray = new object[] { "宋王", "数学", 75.50 }; resultDt.Rows.Add(row9);
#endregion #region 定义中间表,将数据转移,所有值类型都为字符串
// score分数值类型为double,不能使用like,只能用数字之间的比较方式,如:>、<、>=、<=、=
// 如果要使用like来查询score,则需要将score转换为字符串,当做字符串来进行查询,所以定义中间表
DataTable dataTable = new DataTable();
foreach (DataColumn item in resultDt.Columns)
{
DataColumn column = new DataColumn(item.ColumnName, typeof(string));
dataTable.Columns.Add(column);
}
foreach (DataRow item in resultDt.Rows)
{
List<string> values = new List<string>();
foreach (object value in item.ItemArray)
{
if (value != null) values.Add(Convert.ToString(value));
else values.Add("");
}
DataRow row = dataTable.NewRow();
row.ItemArray = values.ToArray();
dataTable.Rows.Add(row);
}
#endregion string nameEqualSql = "`name` = '张三'";//等于
string nameNotEqualSql = "`name` <> '张三'";//不等于
string nameLikeSql = "`name` like '%王%'";//模糊匹配
string nameBeginWithSql = "`name` like '王%'";//以它开头
string nameEndWithSql = "`name` like '%六'";//以它结尾
string scoreBeginWithSql = "`score` like '6%'";//以它开头 //等于 - 张三
DataTable result1 = dataTable.Select(nameEqualSql).CopyToDataTable();
// result1:
// 张三 语文 34.00
// 张三 数学 58.00
// 张三 英语 61.00 //不等于 - 张三
DataTable result2 = dataTable.Select(nameNotEqualSql).CopyToDataTable();
// result2:
// 李四 语文 45.00
// 李四 数学 87.00
// 李四 英语 74.00
// 王五 语文 68.50
// 王六 数学 83.50
// 宋王 数学 75.50 //模糊匹配 - 王
DataTable result3 = dataTable.Select(nameLikeSql).CopyToDataTable();
// result3:
// 王五 语文 68.50
// 王六 数学 83.50
// 宋王 数学 75.50 //以它开头 - 王
DataTable result4 = dataTable.Select(nameBeginWithSql).CopyToDataTable();
// result4:
// 王五 语文 68.50
// 王六 数学 83.50 //以它结尾 - 六
DataTable result5 = dataTable.Select(nameEndWithSql).CopyToDataTable();
// result5:
// 王六 数学 83.50 //以它开头 - 6
DataTable result6 = dataTable.Select(scoreBeginWithSql).CopyToDataTable();
// result6:
// 张三 英语 61.00
// 王五 语文 68.50 Console.WriteLine("---End---");
}

C# DataTable查询示例的更多相关文章

  1. Elasticsearch .Net Client NEST 多条件查询示例

    Elasticsearch .Net Client NEST 多条件查询示例 /// <summary> /// 多条件搜索例子 /// </summary> public c ...

  2. NHibernate查询示例合集

    基本查询   复杂查询示例 /// <summary> /// 获取自定义表单数据中属于部门的部分 /// </summary> /// <param name=&quo ...

  3. MyBatis 查询示例

    环境搭建 数据库schema 1)datasource.xml配置 <?xml version="1.0" encoding="UTF-8"?> & ...

  4. spring boot - 整合jpa多对对关系保存和查询示例

    pojo: package com.example.zs.springDataJpa; import org.hibernate.annotations.Proxy; import javax.per ...

  5. Elasticsearch 邻近查询示例

    Elasticsearch 邻近查询示例(全切分分词) JAVA API方式: SpanNearQueryBuilder span = QueryBuilders.spanNearQuery(); s ...

  6. Accessoft-日期区间段查询示例,开始日期至截止日期区段查询

    Accessoft-日期区间段查询示例,开始日期至截止日期区段查询 实现功能效果如下: 示例查询开始日期为2017年3月15日到2017年3月16日的内容: sql查询语句如下: SELECT Inf ...

  7. DataTable、List使用groupby进行分组和分组统计;List、DataTable查询筛选方法

    DataTable分组统计: .用两层循环计算,前提条件是数据已经按分组的列排好序的. DataTable dt = new DataTable(); dt.Columns.AddRange(new ...

  8. jquery datatable真实示例

    1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncodin ...

  9. SQL Server-简单查询示例(十一)

    前言 本节我们讲讲一些简单查询语句示例以及需要注意的地方,简短的内容,深入的理解,Always to review the basics. EOMONTH 在SQL Server 2012的教程示例中 ...

随机推荐

  1. PHP expm1() 函数

    实例 返回 exp() - 1: <?phpecho(expm1(0) . "<br>");echo(expm1(1) . "<br>&qu ...

  2. mysql中走与不走索引的情况汇集(待全量实验)

    说明 在MySQL中,并不是你建立了索引,并且你在SQL中使用到了该列,MySQL就肯定会使用到那些索引的,有一些情况很可能在你不知不觉中,你就“成功的避开了”MySQL的所有索引. 索引列参与计算 ...

  3. CPU监控 线段树裸题

    LINK:bzoj3064 此题甚好码了20min停下来思考的时候才发现不对的地方有点坑... 还真不好写来着 可这的确是线段树的裸题...我觉得我写应该没有什么大问题 不过思路非常的紊乱 如果是自己 ...

  4. SpringCloud服务注册中心

    SpringCloud服务注册中心 Spring Cloud 是一系列框架的有序集合,如服务注册发现.配置中心.消息总线.负载均衡.断路器等,都可以用 Spring Boot 的开发风格做到一键启动和 ...

  5. 《Head First 设计模式》:单件模式

    正文 一.定义 单件模式确保一个类只有一个实例,并提供一个全局访问点. 要点: 定义持有唯一单件实例的类变量. 私有化构造,避免其他类产生实例. 对外提供获取单件实例的静态方法. 二.实现步骤 1.创 ...

  6. 【AHOI2009】同类分布 题解(数位DP)

    题目大意:求$[l,r]$中各位数之和能被该数整除的数的个数.$0\leq l\leq r\leq 10^{18}$. ------------------------ 显然数位DP. 搜索时记录$p ...

  7. FastAPI框架入门 基本使用, 模版渲染, form表单数据交互, 上传文件, 静态文件配置

    安装 pip install fastapi[all] pip install unicorn 基本使用(不能同时支持,get, post方法等要分开写) from fastapi import Fa ...

  8. 国浩:Cassandra在360的最新进展

    大家好,我是来自奇虎360的国浩.今天我给大家带来的是Cassandra在360的最新进展. 我会从四个方面来介绍Cassandra在360的应用情况:Cassandra在360的使用历史再结合两个案 ...

  9. Python环境搭建、python项目以docker镜像方式部署到Linux

    Python环境搭建.python项目以docker镜像方式部署到Linux 本文的项目是用Python写的,记录了生成docker镜像,然后整个项目在Linux跑起来的过程: 原文链接:https: ...

  10. 为写程序而生的连字字体 Fira Code

    Fira Code,等宽的编程连字字体 **等宽 ** 是指所有字符的宽度相同,如: W 和 i 用一样的宽度去显示 连字(ligatures)为文字排印的一个特性,比如「f」和「 i」放在一起的时候 ...