DataView.RowFilter的使用(包括in,like等SQL中的操作符)_实用技巧

DataView RowFilter Syntax [C#]
This example describes syntax of DataView.RowFil ter expression. It shows how to correctly build expression string (without „SQL injection“) using methods to escape values.

Column names
If a column name contains any of these special characters ~ ( ) # / / = > < + - * % & | ^ ' " [ ], you must enclose the column name within square brackets [ ]. If a column name contains right bracket ] or backslash /, escape it with backslash (/] or //).

[C#]

dataView.RowFilter = "id = 10"; // no special character in column name "id" dataView.RowFilter = "$id = 10"; // no special character in column name "$id" dataView.RowFilter = "[#id] = 10"; // special character "#" in column name "#id" dataView.RowFilter = "[[id/]] = 10"; // special characters in column name "[id]"
Literals
String values are enclosed within single quotes ' '. If the string contains single quote ', the quote must be doubled.

[C#]

dataView.RowFilter = "Name = 'John'" // string value dataView.RowFilter = "Name = 'John ''A'''" // string with single quotes "John 'A'" dataView.RowFilter = String.Format("Name = '{0}'", "John 'A'".Replace("'", "''"));
Number values are not enclosed within any characters. The values should be the same as is the result of int.ToString() or float.ToString() method for invariant or English culture.

[C#]

dataView.RowFilter = "Year = 2008" // integer value dataView.RowFilter = "Price = 1199.9" // float value dataView.RowFilter = String.Format(CultureInfo.InvariantCulture.NumberFormat, "Price = {0}", 1199.9f);
Date values are enclosed within sharp characters # #. The date format is the same as is the result of DateTime.ToString() method for invariant or English culture.

[C#]

dataView.RowFilter = "Date = #12/31/2008#" // date value (time is 00:00:00) dataView.RowFilter = "Date = #2008-12-31#" // also this format is supported dataView.RowFilter = "Date = #12/31/2008 16:44:58#" // date and time value dataView.RowFilter = String.Format(CultureInfo.InvariantCulture.DateTimeFormat, "Date = #{0}#", new DateTime(2008, 12, 31, 16, 44, 58));
Alternatively you can enclose all values within single quotes ' '. It means you can use string values for numbers or date time values. In this case the current culture is used to convert the string to the specific value.

[C#]

dataView.RowFilter = "Date = '12/31/2008 16:44:58'" // if current culture is English dataView.RowFilter = "Date = '31.12.2008 16:44:58'" // if current culture is German dataView.RowFilter = "Price = '1199.90'" // if current culture is English dataView.RowFilter = "Price = '1199,90'" // if current culture is German
Comparison operators
Equal, not equal, less, greater operators are used to include only values that suit to a comparison expression. You can use these operators = <> < <= > >=.

Note: String comparison is culture-sensitive, it uses CultureInfo from DataTable.Locale property of related table (dataView.Table.Locale). If the property is not explicitly set, its default value is DataSet.Locale (and its default value is current system culture Thread.Curren tThread.Curren tCulture).

[C#]

dataView.RowFilter = "Num = 10" // number is equal to 10 dataView.RowFilter = "Date < #1/1/2008#" // date is less than 1/1/2008 dataView.RowFilter = "Name <> 'John'" // string is not equal to 'John' dataView.RowFilter = "Name >= 'Jo'" // string comparison
Operator IN is used to include only values from the list. You can use the operator for all data types, such as numbers or strings.

[C#]

dataView.RowFilter = "Id IN (1, 2, 3)" // integer values dataView.RowFilter = "Price IN (1.0, 9.9, 11.5)" // float values dataView.RowFilter = "Name IN ('John', 'Jim', 'Tom')" // string values dataView.RowFilter = "Date IN (#12/31/2008#, #1/1/2009#)" // date time values dataView.RowFilter = "Id NOT IN (1, 2, 3)" // values not from the list
Operator LIKE is used to include only values that match a pattern with wildcards. Wildcard character is * or %, it can be at the beginning of a pattern '*value', at the end 'value*', or at both '*value*'. Wildcard in the middle of a patern 'va*lue' is not allowed.

[C#]

dataView.RowFilter = "Name LIKE 'j*'" // values that start with 'j' dataView.RowFilter = "Name LIKE '%jo%'" // values that contain 'jo' dataView.RowFilter = "Name NOT LIKE 'j*'" // values that don't start with 'j'
If a pattern in a LIKE clause contains any of these special characters * %

时间: 2025-01-07 04:54:09

DataView.RowFilter的使用(包括in,like等SQL中的操作符)_实用技巧的相关文章

asp.net dataview做无限极分类的又一用法_实用技巧

数据库结构: classidid 主键 jobClassName 对应的类型名称 ClassName 对应的父类的id 通常做法: 复制代码 代码如下: private void Display(string parentid, String space) { DataTable dt; String strSQL; strSQL = "Select * From Tree Where ParentID =" + parentid + " Order By ClassID D

asp.net列出某文件夹下的所有文档,包括子目录下的档案_实用技巧

复制代码 代码如下: protected void Page_Load(object sender, EventArgs e) { //指定目标文件夹 string directory = @"C:\Windows\Microsoft.NET\Framework\v3.5"; IterationFile(directory); } private void IterationFile(string path) { DirectoryInfo di = new DirectoryInfo

.net 获取浏览器Cookie(包括HttpOnly)实例分享_实用技巧

一.接口文件 复制代码 代码如下: using System; using System.ComponentModel; using System.Net; using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions; using System.Text; namespace CookieHandler {     internal sealed class INat

ASP.NET 页面刷新的实现方法(包括html,js)_实用技巧

先看看ASP.NET页面刷新的实现方法: 第一: C# code private void Button1_Click( object sender, System.EventArgs e ) { Response.Redirect( Request.Url.ToString( ) ); } 第二: C# code private void Button2_Click( object sender, System.EventArgs e ) { Response.Write( " < sc

Dataview RowFilter 过滤数组

问题描述 datatable中有一列是int数组.我想利用DataView.Rowfilter查找这个列中的数据.例如:c1(数组)c2(唯一标识)-----------------1ERTUOPGJ...23-----------------4RTYUJMf...56-----------------7CVHUIKL...89条件是查找C1中的数据存在大于2且小于6的.对于第三行信息不要.其他两行要. 解决方案 解决方案二:不是DefaultView.RowFilter="c1>2and

Dataview绑定实例(初学者可以看,很简单,但很实用的)

初学 <%@ Page Language="C#"%><%@ Import Namespace="System.Data"%><script Language="C#" Runat="Server">public void Page_Load(Object src,EventArgs e){int i;DataTable dt=new DataTable();DataRow dr;dt.Co

Asp 操作Cookies(包括设置[赋值]、读取、删除[设置过期时间])_应用技巧

例子: 复制代码 代码如下: Response.Cookies("letwego")("visiter")="84ww" '赋值 Response.Cookies("letwego").Expires= (now() 7) '设置过期时间(7天) userName=Request.Cookies("letwego")("visiter") '取Cookies Response.Cooki

JS上传图片前的限制包括(jpg jpg gif及大小高宽)等_javascript技巧

功能: 1.限制扩展名:只能jpg || jpg和gif 2.限制图片大小:K为单位 3.限制图片宽高:px为单位(要么都有,要么都无) 4.限制已经损坏的图片(没有预览的图片) 5.限制更改过扩展名的图片(比如强制把一个动态的GIF扩展名改为JPG了) 使用限制: 要在InputFile里增加onchange事件,使其选择文件后能在一个img标签里加载出来,否则使用会出错 imglimit.js 复制代码 代码如下: function limitImg(){ var img=document.

Android[第三方or官方]高质量实用【组件&amp;amp;开源项目&amp;amp;框架】集合贴

前言:这里的只起统计作用,方便以后开发使用,会给出源地址,方便大家查阅. =================================================== ①:PhotoView(图片浏览框架) PhotoView 是一款扩展自Android ImageView ,支持通过单点/多点触摸来进行图片缩放的智能控件.特性: 1,支持单点/多点触摸,即时缩放图片: 2,支持平滑滚动: 3,在滑动父控件下能够运行良好:(例如:ViewPager) 源地址:https://githu