DataColumn.Expression プロパティとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > DataColumn.Expression プロパティの意味・解説 

DataColumn.Expression プロパティ

行のフィルタ処理、列内の値の計算、または集約列の作成使用する式を取得または設定します

名前空間: System.Data
アセンブリ: System.Data (system.data.dll 内)
構文構文

例外例外
解説解説

Expression プロパティは、計算列を作成するときにも使用できます。たとえば、税額計算するには、単価特定地域税率乗算ます。税率地域によって異なるため、列に単一税率格納できません。その代わり次の Visual Basic コードで示すとおり、Expression プロパティ使用して値を計算します

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

このプロパティは、集約列の作成にも使用できます計算値に類似していますが、集約は DataTable 内のセット全体基づいて演算実行します単純な例として、行セット返された行数をカウントする場合あります次の Visual Basic コードに示すように、特定の営業担当者処理した取引の数をカウントするときなどに使用される方法です。

 DataSet1.Tables("Orders").Columns("OrderCount").Expression = "Count(OrderID)"
式の構文

式を作成する場合は、ColumnName プロパティ使用して列を参照します。たとえば、ある列の ColumnName が "UnitPrice"、別の列が "Quantity" である場合、式は次のようになります

"UnitPrice * Quantity"

メモメモ

式の中で列を使用している場合、その式はその列に対して依存関係を持つと言います依存列の名前を変更したり、依存列を削除したりした場合でも、例外スローされません。例外は、その時点で無効な式列がアクセスされたときにスローさます。

フィルタの式を作成する場合は、文字列一重引用符囲みます

"LastName = 'Jones'"

次にす文字特殊文字であるため、これらの文字を列名に使用する場合は、次に説明するようにエスケープする必要があります

\n (改行)

\t (タブ)

\r (キャリッジ リターン)

~

(

)

#

\

/

=

>

<

+

-

*

%

&

|

^

'

"

[

]

これらの文字いずれかを列名に使用する場合は、列名を中かっこで囲む必要があります。たとえば、"Column#" という名前の列を式の中で使用する場合は、"[Column#]" と表記する必要があります

Total * [Column#]

角かっこ特殊文字であるため、列名に中かっこ使用する場合は、円記号 ("\") を使用して角かっこエスケープする必要があります。たとえば、"Column[]" という名前の列は次のように表記ます。

Total * [Column[\]]

(2 番目の角かっこだけをエスケープします。)

ユーザー定義の値

列値と比較するユーザー定義の値を式の中で使用できます文字列値は一重引用符で囲む必要があります日付値はシャープ記号 (#) で囲む必要があります10 進数指数表記数値使用できます次に例を示します

"FirstName = 'John'"

"Price <= 50.00"

"Birthdate < #1/31/82#"

列挙値が格納されている列の場合は、値を整数型キャストます。次に例を示します

"EnumColumn = 5"

演算子

Boolean 型AND 演算子、OR 演算子、および NOT 演算子使用して連結できます。かっこを使用して句をグループ化し、強制的にその句を優先させることができますAND 演算子はほかの演算子より優先されます。次に例を示します

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

比較式を作成する場合は、次の演算子使用できます

<

>

<=

>=

<>

=

IN

LIKE

式の中で次の算術演算子使用できます

+ (加算)

- (減算)

* (乗算)

/ (除算)

% (剰余)

文字列演算子

文字列連結するには、+ 文字使用しますDataSet クラスの CaseSensitive プロパティの値によって、文字列比較大文字と小文字区別されるかどうか指定されます。ただし、DataTable クラスの CaseSensitive プロパティ使用してこの値をオーバーライドできます

ワイルドカード文字

* と % はどちらも LIKE 比較の中でワイルドカード文字として使用できますLIKE 句の中の文字列に * または % を使用する場合は、それらの文字角かっこ ([]) で囲んでエスケープする必要があります。句の角かっこ含まれている場合は、角かっこ文字角かっこ囲んで ([[]、[]] のように) エスケープする必要がありますワイルドカード使用できるのは、パターン先頭末尾パターン末尾、またはパターン先頭です。次に例を示します

"ItemName LIKE '*product*'"

"ItemName LIKE '*product'"

"ItemName LIKE 'product*'"

ワイルドカード文字は文字列の途中使用できません。たとえば、"te*xt" とは表記できません。

親子リレーションシップ参照

列名の前に Parent付けて、式の中で親テーブル参照できます。たとえば、Parent.Price は、親テーブル内の Price という名前の列を参照します。

列名の前に Child付けて、式の中で子テーブル内の列を参照できます。ただし、子のリレーションシップから複数の行が返される可能性があるため、集約関数には子への参照含める必要があります。たとえば、Sum(Child.Price) は、子テーブルPrice という名前の列の合計返します

テーブル複数の子テーブルがある場合構文は、Child(RelationName) です。たとえば、テーブルCustomersOrders という名前の 2 つの子テーブルがあり、DataRelation オブジェクトの名前が Customers2Orders である場合参照次のようになります

Avg(Child(Customers2Orders).Quantity)

集約

サポートされ集約型は次のとおりです。

Sum (和)

Avg (平均)

Min (最小)

Max (最大)

Count (カウント)

StDev (統計標準偏差)

Var (統計分散)

通常集約リレーションシップ沿って実行されます。集約式を作成するには、前述の「親子リレーションシップ参照」で説明しているように、上記関数いずれかと子テーブル列を使用します次に例を示します

Avg(Child.Price)

Avg(Child(Orders2Details).Price)

単一テーブルに対して集約実行できます。たとえば、"Price" という名前の列の数字合計作成するには、次の構文使用します

Sum(Price)

テーブルに行がない場合は、集約機能null 参照 (Visual Basic では Nothing) を返します

データ型は、いつでも、列の DataType プロパティチェックして確認できますConvert 関数使用して以降セクションで示すようにデータ型変換することもできます

FUNCTIONS

次の関数サポートされます。

CONVERT

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

次の例外除きすべての変換が有効です。Boolean は、ByteSByteInt16Int32Int64UInt16UInt32UInt64String、およびその型自体との間でだけ強制的に変換できますChar は、Int32UInt32String、およびその型自体との間でだけ強制的に変換できますDateTime は、String およびその型自体との間でだけ強制的に変換できますTimeSpan は、String およびその型自体との間でだけ強制的に変換できます

LEN

例 : myDataColumn.Expression="Len(ItemName)"

ISNULL

説明

式をチェックしチェックした式または置換値のどちらか返します

構文

ISNULL( expression , replacementvalue )

引数

expression -- チェックする式。

replacementvalue -- 式が null 参照 (Visual Basic では Nothing) の場合replacementvalue返されます。

例 : myDataColumn.Expression="IsNull(price, -1)"

IIF

説明

論理式結果に応じて 2 つの値のどちらか取得します

構文

IIF( expr , truepart , falsepart )

引数

expr -- 評価する式。

truepart -- 式が true場合返される値。

falsepart -- 式が false場合返される値。

例 : myDataColumn.Expression = "IIF(total>1000, 'expensive', 'dear')

TRIM

SUBSTRING

例 : myDataColumn.Expression = "SUBSTRING(phone, 7, 8)"

メモメモ

Expression プロパティリセットするには、プロパティnull 値または空の文字列割り当てます。式が格納されている列に対して既定値設定されている場合は、Expression プロパティリセットすると、以前に値が格納されていたすべての行に既定値割り当てられます。

使用例使用例

DataTable 内に列を 3 つ作成する例を次に示します2 番目の列と 3 番目の列には式が格納されています。2 番目の列では可変税率使用して税額計算され3 番目の列ではその計算結果最初の列の値に加算されます。結果として生成されテーブルが DataGrid コントロール表示されます。

Private Sub CalcColumns()
     Dim rate As Single
 = .0862
     dim table as DataTable = New
 DataTable 
 
     ' Create the first column.
     Dim priceColumn As DataColumn = New
 DataColumn
     With priceColumn
         .DataType = System.Type.GetType("System.Decimal")
         .ColumnName = "price"
         .DefaultValue = 50
     End With
     
     ' Create the second, calculated, column.
     Dim taxColumn As DataColumn = New
 DataColumn
     With taxColumn
         .DataType = System.Type.GetType("System.Decimal")
         .ColumnName = "tax"
         .Expression = "price * 0.0862"
     End With
     
    ' Create third column
     Dim totalColumn As DataColumn = New
 DataColumn
     With totalColumn
         .DataType = System.Type.GetType("System.Decimal")
         .ColumnName = "total"
         .Expression = "price + tax"
     End With
 
     ' Add columns to DataTable
     With table.Columns
         .Add(priceColumn)
         .Add(taxColumn)
         .Add(totalColumn)
     End With
    
     Dim row As DataRow= table.NewRow
     table.Rows.Add(row)
     Dim view As New DataView
     view.Table = table
     DataGrid1.DataSource = view
 End Sub
private void CalcColumns()
{
    DataTable table = new DataTable ();
 
    // Create the first column.
    DataColumn priceColumn = new DataColumn();
    priceColumn.DataType = System.Type.GetType("System.Decimal");
    priceColumn.ColumnName = "price";
    priceColumn.DefaultValue = 50;
     
    // Create the second, calculated, column.
    DataColumn taxColumn = new DataColumn();
    taxColumn.DataType = System.Type.GetType("System.Decimal");
    taxColumn.ColumnName = "tax";
    taxColumn.Expression = "price * 0.0862";
     
    // Create third column.
    DataColumn totalColumn = new DataColumn();
    totalColumn.DataType = System.Type.GetType("System.Decimal");
    totalColumn.ColumnName = "total";
    totalColumn.Expression = "price + tax";

    // Add columns to DataTable.
    table.Columns.Add(priceColumn);
    table.Columns.Add(taxColumn);
    table.Columns.Add(totalColumn);

    DataRow row = table.NewRow();
    table.Rows.Add(row);
    DataView view = new DataView(table);
    dataGrid1.DataSource = view;
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照


このページでは「.NET Framework クラス ライブラリ リファレンス」からDataColumn.Expression プロパティを検索した結果を表示しています。
Weblioに収録されているすべての辞書からDataColumn.Expression プロパティを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からDataColumn.Expression プロパティを検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「DataColumn.Expression プロパティ」の関連用語

DataColumn.Expression プロパティのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DataColumn.Expression プロパティのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS