同桌上课用手指进去了好爽_欧美丰满熟妇xxⅹⅹ性大i_成人av天天日天天拍拍_猛男gay帅男gay男男同志_欧美va天堂在线观看_人妻无码av中文系列三里桃花_亚欧免费无码在线观看_久久久精品国产亚洲av水_日韩在线免费看污污污_2021无码专区人妻系列日韩

首頁(yè) 優(yōu)化推廣 DataTable的Select方法

DataTable的Select方法

來(lái)源: | 時(shí)間:2011/2/19 6:31:18 |

問(wèn):

DataRow[]   drArray;

string   strExpr;
string   strSort;


strExpr   =   "Subject   like   % "+tbCondition.Text+ "% ";//這里應(yīng)該如何寫(xiě)?查了不少貼子都沒(méi)有類(lèi)似這樣的寫(xiě)法。主要是like

                  strSort   =   "ID   DESC ";
drArray   =   dt.Select(strExpr,strSort,DataViewRowState.CurrentRows);//dt是DataTable的實(shí)例,這行執(zhí)行之后,dt原來(lái)的數(shù)據(jù)是否已經(jīng)改變。

 

回答:

Expression   屬性的一個(gè)用途是創(chuàng)建計(jì)算出的列。例如,若要計(jì)算稅值,就要將單價(jià)乘以給定地區(qū)的稅率。由于各地稅率不同,不可能將單一的稅率放在列中;于是便用   Expression   屬性來(lái)計(jì)算這個(gè)值,如下面的   Visual   Basic   代碼所示:

DataSet1.Tables( "Products ").Columns( "tax ").Expression   =   "UnitPrice   *   0.086 "

第二個(gè)用途是創(chuàng)建聚合列。類(lèi)似于計(jì)算出的值,聚合基于   DataTable   中的整個(gè)行集執(zhí)行操作。一個(gè)簡(jiǎn)單的示例是對(duì)返回到集中的行數(shù)進(jìn)行計(jì)數(shù),這也就是您可能用來(lái)對(duì)某個(gè)特定銷(xiāo)售人員完成的交易次數(shù)進(jìn)行計(jì)數(shù)的方法,如下面的   Visual   Basic   代碼所示:

DataSet1.Tables( "Orders ").Columns( "OrderCount ").Expression   =   "Count(OrderID) "

表達(dá)式語(yǔ)法

在創(chuàng)建表達(dá)式時(shí),使用   ColumnName   屬性來(lái)引用列。例如,如果一個(gè)列的   ColumnName   是“UnitPrice”(單價(jià)),而另一個(gè)是“Quantity”(數(shù)量),則表達(dá)式將是:

"UnitPrice   *   Quantity "

在為篩選器創(chuàng)建表達(dá)式時(shí),將字符串放到單引號(hào)中:

"LastName   =   Jones "

下面的字符是特殊字符,如下面所解釋的,如果它們用于列名稱中,就必須進(jìn)行轉(zhuǎn)義:

\n   (newline)

\t   (tab)

\r   (carriage   return)

~

(

)

#

\

/

=

>

<

+

-

*

%

&

|

^

"

[

]

如果列名稱包含上面的字符之一,該名稱必須用中括號(hào)括起來(lái)。例如,若要在表達(dá)式中使用名為“Column#”的列,應(yīng)寫(xiě)成“[Column#]”:

Total   *   [Column#]

由于中括號(hào)是特殊字符,如果它是列名稱的組成部分,必須使用斜杠   ( "\ ")   將中括號(hào)轉(zhuǎn)義。例如,名為“Column[]”的列應(yīng)寫(xiě)成:

Total   *   [Column[\]]

(只有第二個(gè)中括號(hào)必須轉(zhuǎn)義。)

用戶定義的值

用戶定義的值可以用在將與列值進(jìn)行比較的表達(dá)式內(nèi)。字符串值應(yīng)放在單引號(hào)內(nèi)。日期值應(yīng)放在磅符號(hào)   (#)   內(nèi)。對(duì)于數(shù)值,允許使用小數(shù)和科學(xué)記數(shù)法。例如:

"FirstName   =   John "

"Price   <=   50.00 "

"Birthdate   <   #1/31/82# "

對(duì)于包含枚舉值的列,將值強(qiáng)制轉(zhuǎn)換為整數(shù)數(shù)據(jù)類(lèi)型。例如:

"EnumColumn   =   5 "

運(yùn)算符

使用布爾值   AND、OR   和   NOT   運(yùn)算符時(shí)允許串聯(lián)。可以使用括號(hào)來(lái)組合子句和強(qiáng)制優(yōu)先級(jí)。AND   運(yùn)算符優(yōu)先于其他運(yùn)算符。例如:

(LastName   =   Smith    OR   LastName   =   Jones )   AND   FirstName   =   John

在創(chuàng)建比較表達(dá)式時(shí),允許使用下列運(yùn)算符:

<

>

<=

> =

<>

=

IN

LIKE

在表達(dá)式中還支持下列算術(shù)運(yùn)算符:

+(加)

-(減)

*(乘)

/(除)

%(模數(shù))

字符串運(yùn)算符

若要連接字符串,請(qǐng)使用   +   字符。字符串比較是否區(qū)分大小寫(xiě)由   DataSet   類(lèi)的   CaseSensitive   屬性的值來(lái)確定。但是,可以用   DataTable   類(lèi)的   CaseSensitive   屬性重寫(xiě)此值。

通配符

在   LIKE   比較中,*   和   %   兩者可以互換地作為通配符。如果   LIKE   子句中的字符串包含   *   或   %,那么這些字符應(yīng)用中括號(hào)([])對(duì)其進(jìn)行轉(zhuǎn)義。如果子句中有中括號(hào),那么中括號(hào)字符應(yīng)用中括號(hào)對(duì)其進(jìn)行轉(zhuǎn)義(例如   [[]   或   []])。在模式的開(kāi)頭和結(jié)尾,或者在模式的結(jié)尾,或在模式的開(kāi)頭允許使用通配符。例如:

"ItemName   LIKE   *product* "

"ItemName   LIKE   *product "

"ItemName   LIKE   product* "

在字符串的中間不允許使用通配符。例如,不允許   te*xt 。

父/子關(guān)系引用

通過(guò)在列名稱前面加   Parent,就可以在表達(dá)式中引用父表。例如,Parent.Price   引用父表的名為   Price   的列。

通過(guò)在列名稱前面加一個(gè)   Child,就可以在表達(dá)式中引用子表中的列。但是,因?yàn)樽雨P(guān)系可以返回多行,所以必須在聚合函數(shù)中包括對(duì)子列的引用。例如,Sum(Child.Price)   將返回子表中名為   Price   的列的總和。

如果某個(gè)表有多個(gè)子表,則語(yǔ)法是:Child(RelationName)。例如,如果某個(gè)表有兩個(gè)子表,它們的名稱分別為   Customers   和   Orders,則   DataRelation   對(duì)象被命名為   Customers2Orders,引用將為:

Avg(Child(Customers2Orders).Quantity)

聚合

支持下列聚合類(lèi)型:

Sum(求和)

Avg(平均)

Min(最小值)

Max(最大值)

Count(計(jì)數(shù))

StDev(統(tǒng)計(jì)標(biāo)準(zhǔn)偏差)

Var(統(tǒng)計(jì)方差)。

聚合通常沿著關(guān)系執(zhí)行。通過(guò)使用上面列出的函數(shù)之一和上面“父/子關(guān)系引用”中詳述的子表列,來(lái)創(chuàng)建聚合表達(dá)式。例如:

Avg(Child.Price)

Avg(Child(Orders2Details).Price)

聚合也可以在單個(gè)表上執(zhí)行。例如,若要為名為“Price”的列中的數(shù)字創(chuàng)建匯總,就用:

Sum(Price)

注意       如果使用一個(gè)表來(lái)創(chuàng)建聚合,將沒(méi)有組合功能。相反,所有行都在列中顯示相同的值。
如果表沒(méi)有行,聚合函數(shù)將返回空引用(Visual   Basic   中為   Nothing)。

數(shù)據(jù)類(lèi)型總是可以通過(guò)檢查列的   DataType   屬性來(lái)確定。還可以使用   Convert   函數(shù)來(lái)轉(zhuǎn)換數(shù)據(jù)類(lèi)型,如下所示。

FUNCTIONS 

還支持下列函數(shù):

CONVERT 

描述   將給定表達(dá)式轉(zhuǎn)換為指定的   .NET   Framework   類(lèi)型。 
語(yǔ)法   Convert(expression,   type) 
參數(shù)   expression   —   要轉(zhuǎn)換的表達(dá)式。 
type   —   值將轉(zhuǎn)換成的   .NET   Framework   類(lèi)型。
 

例如:myDataColumn.Expression= "Convert(total,   System.Int32 ) "

所有轉(zhuǎn)換都是有效的,只有下列情況例外:Boolean   只能與   Byte、SByte、Int16、Int32、Int64、UInt16、UInt32、UInt64、String   和它本身相互轉(zhuǎn)換。Char   只能與   Int32、UInt32、String   和它本身相互轉(zhuǎn)換。DateTime   只能與   String   和它本身相互轉(zhuǎn)換。TimeSpan   只能與   String   和它本身相互轉(zhuǎn)換。

LEN 

描述   獲取字符串的長(zhǎng)度 
語(yǔ)法   LEN(expression) 
參數(shù)   expression   —   要計(jì)算的字符串。 

例如:myDataColumn.Express

服務(wù)熱線

153 8323 9821

功能和特性

價(jià)格和優(yōu)惠

網(wǎng)站和維護(hù)

推廣和優(yōu)化

微信服務(wù)號(hào)