C# DataTable查询示例
代码
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查询示例的更多相关文章
- Elasticsearch .Net Client NEST 多条件查询示例
Elasticsearch .Net Client NEST 多条件查询示例 /// <summary> /// 多条件搜索例子 /// </summary> public c ...
- NHibernate查询示例合集
基本查询 复杂查询示例 /// <summary> /// 获取自定义表单数据中属于部门的部分 /// </summary> /// <param name=&quo ...
- MyBatis 查询示例
环境搭建 数据库schema 1)datasource.xml配置 <?xml version="1.0" encoding="UTF-8"?> & ...
- spring boot - 整合jpa多对对关系保存和查询示例
pojo: package com.example.zs.springDataJpa; import org.hibernate.annotations.Proxy; import javax.per ...
- Elasticsearch 邻近查询示例
Elasticsearch 邻近查询示例(全切分分词) JAVA API方式: SpanNearQueryBuilder span = QueryBuilders.spanNearQuery(); s ...
- Accessoft-日期区间段查询示例,开始日期至截止日期区段查询
Accessoft-日期区间段查询示例,开始日期至截止日期区段查询 实现功能效果如下: 示例查询开始日期为2017年3月15日到2017年3月16日的内容: sql查询语句如下: SELECT Inf ...
- DataTable、List使用groupby进行分组和分组统计;List、DataTable查询筛选方法
DataTable分组统计: .用两层循环计算,前提条件是数据已经按分组的列排好序的. DataTable dt = new DataTable(); dt.Columns.AddRange(new ...
- jquery datatable真实示例
1 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncodin ...
- SQL Server-简单查询示例(十一)
前言 本节我们讲讲一些简单查询语句示例以及需要注意的地方,简短的内容,深入的理解,Always to review the basics. EOMONTH 在SQL Server 2012的教程示例中 ...
随机推荐
- Python创建字符串
Python创建字符串: 一般情况下可以使用 ' 或 " 创建字符串 或 使用引用字符串变量 或 字符串表达式. # 字符串的创建 # 使用 ' 或 “ 进行创建 strs = 'ABCDE ...
- Django创建简单数据库
在 创建好的 app 目录下的 models.py 中,编写创建 数据库表的限制条件 class Student(models.Model): s_name = models.CharField(ma ...
- PHP cal_to_jd() 函数
------------恢复内容开始------------ 实例 把 2007 年 6 月 20 日(格利高里历法)转换为儒略日计数: <?php$d=cal_to_jd(CAL_GREGOR ...
- C 语言学习 --2
memset Declaration: void *memset(void *str, int c, size_t n); Copies the character c (an unsigned ch ...
- JVM系列之:JIT中的Virtual Call
目录 简介 Virtual Call和它的本质 Virtual Call和classic call Virtual Call优化单实现方法的例子 Virtual Call优化多实现方法的例子 总结 简 ...
- 提交项目到码云上git的使用
git clone .. cd 到项目目录 git branch 查看当前的所有分支 git branch shanshan 创建一个属于自己的分支 git checkout shansha ...
- Android后台数据接口交互实现注册功能
首先,在ecplise里面新建一个叫做TestServices的web工程.在WebContent--WEB-INF--libs文件夹下导入两个jar包:mysql-connector-java-6. ...
- 文件上传Upload 漏洞挖掘思路
1:尽可能多的找出网站存在的上传点2:尝试使用如上各种绕过方法3:尝试 geshell4:无法上传webshel的情况下: 尝试上传html等,或可造成存储XSS漏洞 上传点构造XSS等,结合上传后的 ...
- pandas | 详解DataFrame中的apply与applymap方法
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是pandas数据处理专题的第5篇文章,我们来聊聊pandas的一些高级运算. 在上一篇文章当中,我们介绍了panads的一些计算方法, ...
- C#开发笔记之02-什么时候使用OnXXX方法,这种命名是什么意思?
C#开发笔记概述 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/958 访问. 你也许经常会看到别人写的代码里有OnXX ...