20160122 DataView RowFilter语法
原文出自:http://www.csharp-examples.net/dataview-rowfilter/
DataView RowFilter语法(c#)
这个例子描述了DataView.RowFilter表达式的语法。它显示了如何正确构建表达式字符串(不„SQL注入”)转义字符的使用方法。
列名
如果一个列名包含这些特殊字符 ~
(
)
#
\
/
=
>
<
+
-
*
%
&
|
^
'
"
[
]
,你必须在列名上加上方括号[ ]。如果一个列名包含右括号 ]
或反斜杠 \
,用反斜杠转义(\]
或 \\
).
(c#)
文字
字符型(String):使用单引号包裹’’。如果字符串包含单引号’,使用两个单引号。
(c#)
dataView.RowFilter
= String.Format("Name = '{0}'", "John 'A'".Replace("'", "''"));
数值型:不需要使用特殊符号包裹。的值应该是一样的结果 int.ToString()
或 float.ToString()
方法不变或英语文化。
(c#)
dataView.RowFilter
= String.Format(CultureInfo.InvariantCulture.NumberFormat,"Price = {0}", 1199.9f);
日期型:使用井号字符包裹 #
#
。日期格式是一样的结果 DateTime.ToString()
方法不变或英语文化。
(c#)
dataView.RowFilter
= String.Format(CultureInfo.InvariantCulture.DateTimeFormat, "Date = #{0}#", newDateTime(, , , , , ));
或者你可以使用单引号包裹'
'
。这意味着您可以使用数字或日期时间值的字符串值。在这种情况下,当前英文用于将字符串。
(c#)
dataView.RowFilter
= "Price = '1199.90'"// if current culture is English dataView.RowFilter = "Price = '1199,90'"// if current culture is German
比较运算符
平等,不等,小于,大于的运营商用于只包括适合比较表达式的值。您可以使用这些操作符 =
<>
<
<=
>
>=
.
注意:字符串比较是与文化相关的,它使用的CultureInfoDataTable.Locale房地产相关的表(dataView.Table.Locale
)。如果没有显式地设置属性,它的默认值是数据集。地区(及其默认值是当前系统文化Thread.CurrentThread.CurrentCulture)。
(c#)
运算符IN:是用来从列表中只包含值。您可以使用操作员对所有数据类型,如数字或字符串。
(c#)
dataView.RowFilter
= "Id NOT IN (1, 2, 3)"// values not from the list
运算符LIKE:是用来只包含值与通配符匹配一个模式。通配符是 *
或 %
,它可以在一个模式的开始 '*value',
最后'value*'
,或者在两侧 '*value*'
。通配符在中间
是不允许的'va*lue'。
(c#)
dataView.RowFilter
= "Name NOT LIKE 'j*'"// values that don't start with 'j'
如果包含这些特殊字符 *
%
[
]
,这些字符必须在括号中 [
]
像这样 [*]
, [%]
, [[]
或[]]
.
(c#)
下面的方法转义一个文本的使用的例子。
(c#)
sb.Append(c);
}
return sb.ToString();
}
(c#)
//
select all that starts with the value string (in this case with "*")string value = "*"; // the dataView.RowFilter will be: "Name LIKE '[*]*'" dataView.RowFilter = String.Format("Name LIKE '{0}*'"EscapeLikeValue(value));
布尔操作符
布尔操作符 AND
, OR
和 NOT
用于连接表达式。运算符 NOT它优先于运算符AND优先于运算符OR。
(c#)
算术和字符串操作符
算术运算符是加法 +
、减 -
、乘 *
、除 /
和模量 %
.
(c#)
还有一个字符串运算符连接 +
.
亲子关系引用
但事情表可以使用父表达式中引用的列名称 Parent.
前缀。Acolumn子表中可以使用孩子列名称引用 Child.
前缀。
对孩子的引用列必须在一个聚合函数,因为孩子的关系可能返回多个行。例如表达 SUM(Child.Price)
返回的所有价格在parenttable行相关的子表。
如果一个表有一个以上的孩子关系,前缀名称必须包含关系。例如表达Child(OrdersToItemsRelation).Price
引用列价格在子表中使用关系叫OrdersToItemsRe副调制。
聚合函数
有支持的聚合函数 SUM
, COUNT
, MIN
, MAX
, AVG
(平均) STDEV
(统计标准偏差) VAR
(统计方差)。
这个例子展示了singletable聚合函数执行。
(c#)
下面的例子显示了聚合函数对两个表进行亲子关系。假设有表订单和项目与亲子关系。
(c#)
功能
也有支持以下功能。详细描述可以在这里找到DataColumn.Ex压力.
CONVERT
——将特定的表达式来指定的。净FrameworktypeLEN
——得到一个字符串的长度ISNULL
——检查表达式并返回检查表达式或replacementvalueIIF
——得到两个值之一取决于逻辑表达式的结果TRIM
——删除所有前导和尾随空白字符\ r、\ n \ t,‚”SUBSTRING
——指定长度的子串,在thestring开始在指定点
20160122 DataView RowFilter语法的更多相关文章
- DataView RowFilter Syntax [C#]
RowFilter语法 private void btnEnquiry_Click(object sender, EventArgs e) { string filterExpression = st ...
- DataView.RowFilter筛选DataTable中的数据
//定义一个DataView ,得到一个全部职员的视图DataView dataView1 = DbHelperSQL.QueryDataView(sql); //过滤得到一个只显示男职员的视图 da ...
- DataView RowFilter
DataView类用来表示定制的DataTable的视图. DataTable和DataView的关系是遵循著名的设计模式--文档/视图模式,其中DataTable是文档,而Dataview是视图. ...
- .NET中的视图和过滤器 (DefaultView和RowFilter)
NET中的视图和过滤器 (DefaultView和RowFilter) ADO.NET中有一层对象,用来创建任意数据源的抽象模型.其中包括DataSet,DataTable,DataRow,DataV ...
- [转载]DataView详解
表示用于排序.筛选.搜索.编辑和导航的 DataTable 的可绑定数据的自定义视图. DataView的功能类似于数据库的视图,他是数据源DataTable的封装对象,可以对数据源进行排序.搜索.过 ...
- .net窗体程序的基础知识及详细笔记
第一章:初识Windows程序 1.1:第一个wondows程序 1.1.1:认识windows程序 Form1.cs:窗体文件:程序对窗体编写的代码一般都存放在这个文件(还有拖动控件时的操作和布局, ...
- C# 对Datatable排序
一,在C#中要对Datatable排序,可使用DefaultView的Sort方法.先获取Datatable的DefaultView,然后设置 得到的Dataview的sort属性,最后用视图的ToT ...
- 浅谈DevExpress<二>:设计一个完整界面(2)
下面来把剩下的工作做完,换肤功能昨天已近讨论过,今天就不重复了.首先建立三个全局变量,一个存放文件路径,一个存放数据,一个存放过滤条件. string DBFileName; DataView dat ...
- Winform带dataGridview的Combox控件
调用控件: public partial class Form1 : Form { public Form1() { InitializeComponent(); //---------------- ...
随机推荐
- HDU.6186.CSCource.(前缀和数组和后缀和数组)
明天后天是南昌赛了嘤嘤嘤,这几天就先不更新每日题目了,以后补题嘤嘤嘤. 今天和队友做了一套2017年广西邀请赛,5个题还是有点膨胀...... 好了,先来说一下有意思的题目吧...... CS Cou ...
- Ad Hoc Distributed Queries / xp_cmdshell 的启用与关闭
启用Ad Hoc Distributed Queries: reconfigure reconfigure 关闭Ad Hoc Distributed Queries: reconfigure reco ...
- Balanced Lineup poj3264 线段树
Balanced Lineup poj3264 线段树 题意 一串数,求出某个区间的最大值和最小值之间的差 解题思路 使用线段树,来维护最大值和最小值,使用两个查询函数,一个查区间最大值,一个查区间最 ...
- require 和 import 详解
前言 JS模块化编程是前端小伙伴们必不可少的知识,下面妹子将于自认为比较清晰的方式列举出来. 1 require 特点: 1.运行时加载 2.拷贝到本页面 3.全部引入 1.1 CommonJS No ...
- .NET平台 C# ASP.NET
.NET 平台 根据微软的定义: .NET is a“ revolutionary new platform, built on open Internet protocols and standar ...
- 如何官网下载chrome谷歌浏览器离线安装包
目录 1. 下载步骤 2. 将语言更改为中文 3. 插件 3.1. chrome 网上应用店 3.1.1. google-access-helper 4. 更新失败 1. 下载步骤 注意 需要梯子才能 ...
- 转载——CentOS---网络配置详解
看到一篇关于Centos网络配置很详细的文章,特此复制来.原文网址:http://blog.chinaunix.net/uid-26495963-id-3230810.html 一.配置文件详解在RH ...
- Altium Designer设计PCB中如何开槽
在不同层画槽孔形状实际得到的PCB效果(注意槽孔边缘) 在不同层画槽孔形状进行(注意槽孔边缘) 很多坛友问在使用Altium Designer设计PCB时,想在板子上开一个槽或者挖一个孔该如何操作,是 ...
- Linux下NFS服务器的搭建与配置(转)
一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...
- [sql 注入] 注入类型
基于整型的注入: url:http://localhost/?id=12 拼接sql:$sql = "select * from user where id = {$_GET['id']}& ...