Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

DataColumn.Expression Propriedade

Gets or Sets the expressão Used to filtro Rows, Calculate the values in a coluna, or Criar an agregado coluna.

Namespace:  System.Data
Assembly:  System.Data (em System.Data. dll)

public string Expression { get; set; }

Valor da propriedade

Tipo: System.String
An expressão to Calculate the valor of a coluna, or Criar an agregado coluna.The return type of an expression is determined by the DataType of the column.

ExceçãoCondição
ArgumentException

The AutoIncrement or Unique property is set to true.

FormatException

When you are Using the função CONVERT, the expressão evaluates to a Cadeia de Caracteres, but the Cadeia de Caracteres Does Not Contain a representation that can be converted to the parâmetro tipo.

InvalidCastException

Quando você estiver usando a função CONVERTER, a conversão solicitada não é possível.See the Conversion in the for Detalhado about casts Possible.

ArgumentOutOfRangeException

When You Use the Subcadeia função, is the argumento iniciar out of intervalo.

-ou-

Quando você usa o Subcadeia função, o argumento comprimento é out of intervalo.

Exception

When You Use the função LEN or the função TRIM, the expressão does not Evaluate to a Cadeia de Caracteres.This includes expressions that evaluate to Char.

One use of the Expression property is to create calculated columns.Por exemplo, para calcular um valor de imposto, o preço unitário é multiplicado por uma taxa de imposto de uma região específica.Because tax rates vary from region to region, it would be impossible to put a single tax rate in a column; instead, the value is calculated using the Expression property, as shown in the Visual Basic code in the following section:

DataSet1.Tables("Products").Columns("Tax"). Expressão = " UnitPrice * 0.086"

Um uso segundo é a Criar um agregado coluna.Similar to a calculated value, an aggregate performs an operation based on the complete set of rows in the DataTable.Um exemplo simples é contar o número de linhas retornadas no conjunto.Este é o método você usaria para contagem o número de transações concluído por um vendedor específico, conforme mostrado neste Visual Basic Código:

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

Sintaxe expressão

When you create an expression, use the ColumnName property to refer to columns.For example, if the ColumnName for one column is "UnitPrice", and another "Quantity", the expression would be as follows:

" PreçoUnitário * quantidade "

ObservaçãoObservação:

Se uma coluna é usada em uma expressão, em seguida, a expressão é chamada têm uma dependência em dessa coluna.If a dependente coluna is Renomeado or Removed, no exceção is thrown.An exceção will be thrown when the Now-Desfeita coluna expressão is accessed.

When You Create an expressão for a filtro, incluir Cadeia de caracteres with Single Marks quotation:

" Sobrenome = 'jones' "

The seguinte Characters are Characters Special and must be escaped, as explained aqui, IF they are used in a nome da coluna:

\n (nova linha)

\t (guia)

\r (retorno de carro)

~

(

)

#

\

/

=

>

<

+

-

*

%

&

|

^

'

"

[

]

Se um nome de coluna contiver um dos caracteres anteriores, o nome deve ser empacotado entre colchetes.For exemplo to Use a coluna nomeado "Column #" in an expressão, you would Gravar "[Column #]":

Total * [coluna] #

Because Colchetes are Characters Special, You Must use a ("\") to escape the Colchete, if it is part of a .Por exemplo, uma coluna chamada "[] colunas" poderia ser gravada:

Total * [coluna [\]]

(Somente o colchete segundo deve ser seguidas caractere ESCAPE.)

User-Defined values

Valores definidos pelo usuário podem ser usados em expressões para ser comparado com valores da coluna.Cadeia de Caracteres Values should be enclosed within Single Marks quotation.Valores de data devem ser colocados dentro de sinais de sustenido (#) ou aspas simples (') com base no provedor de dados.Casas decimais e notação científica são que permita valores numéricos. Por exemplo:

" Nome = 'joão' "

" Preço < = 50.00"

" Data de Nascimento < # 1/31/82# "

For Colunas that Contain values enumeração, CAST the valor to an tipo de dados inteiro. Por exemplo:

" EnumColumn = 5"

OPERATORS

Concatenação é permitida usando booleanos AND, OR e NOT operadores.You can use parentheses to Agrupar clauses and forçar prioridade.O operador E tem precedência sobre outros operadores. Por exemplo:

(Sobrenome = 'smith' ou sobrenome = 'jones') E nome = 'joão'

When You Criar Comparison Expressions, the Operators are allowed:

<

>

<=

>=

<>

=

Em Solution Explorer, abra o menu de atalho com botão direito sobre o nome do projeto e então escolha Properties.

LIKE

Também há suporte para os seguintes operadores aritméticos em expressões:

+ (adição)

- (subtração)

* (multiplicação)

/ (divisão)

% (módulo)

OPERATORS Cadeia de Caracteres

To concatenar a Cadeia de Caracteres, use the + caractere.The value of the CaseSensitive property of the DataSet class determines whether string comparisons are case-sensitive.However, you can override that value with the CaseSensitive property of the DataTable class.

Caracteres WILDCARD

Ambos o * e % pode ser usado de forma intercambiável para caracteres curinga em uma comparação LIKE.If the Cadeia de Caracteres in a LIKE cláusula contains a * OR %, Those Characters should be escaped in brackets ([]).Se um colchete estiver na cláusula, caracteres de colchete devem ser seguidas caractere escape colchetes (por exemplo [[] ou []]).A curinga is allowed at the Iniciar and end of a padrão, or at the end of a padrão, or at the Iniciar of a padrão. Por exemplo:

" ItemName como ' * produto * ' "

" ItemName como ' * produto ' "

"ItemName como 'Produto' *"

Wildcard Characters Are Not Allowed in the middle of a Cadeia de Caracteres.Por exemplo, ' te * próximo ' não é permitido.

Parent/REFERENCING filho Relation

A parent table may be referenced in an expression by prepending the column name with Parent.For example, the Parent.Price references the parent table's column named Price.

A column in a child table may be referenced in an expression by prepending the column name with Child.However, because Relationships filho May Return múltiplo Rows, You Must include the reference to the coluna filho in an Agregação função.For example, Sum(Child.Price) would return the sum of the column named Price in the child table.

If a tabela has Mais than One filho, is the sintaxe: Child(RelationName).For example, if a table has two child tables named Customers and Orders, and the DataRelation object is named Customers2Orders, the reference would be as follows:

Avg(filho(Customers2Orders).Quantity)

AGGREGATES

The seguinte Agregação Types are com suporte:

Sum (SOMA)

Avg (média)

Min (mínimo)

Max (máximo)

Contar (Contar)

StDev (estatísticas desvio padrão)

Var (variância estatísticas).

Agregados são normalmente executados junto relacionamentos.Create an agregado expressão by Using one of the funções listed Earlier and a coluna tabela filho as Detalhado in PARENT/CHILD RELATION REFERENCING that was discussed earlier. Por exemplo:

Avg(filho.Price)

Avg(filho(Orders2Details).Price)

An Agregação can also be performed on a tabela Single.Por exemplo, para criar um resumo das figuras em uma coluna chamada "Preço":

Sum(Price)

ObservaçãoObservação:

Se você usar uma única tabela para criar um agregado, haveria não Agrupar - por funcionalidade.INSTEAD, Tudo Rows would exibir the same valor in the coluna.

If a table has no rows, the aggregate functions will return null.

Data types can always be determined by examining the DataType property of a column.Você também pode converter tipos de dados usando a função CONVERTER, mostrada na seção a seguir.

FUNCTIONS

Também há suporte para as seguintes funções:

CONVERT

Descrição

Converte expressão específico para um tipo .NET Framework especificado.

Sintaxe

Convert(expression, type)

Argumentos

expression -- The expression to convert.

type -- The .NET Framework type to which the value will be converted.

Exemplo: MyDataColumn.Expression="Convert(Total, 'Sistema.Int32')"

Tudo conversions are válido with the seguinte Exceptions: Boolean can be coerced to and from Byte, SByte, Int16, Int32, Int64, UInt16, UInt32, UInt64, String and itself only. Char can be coerced to and from Int32, UInt32, String, and itself only. DateTime can be coerced to and from String and itself only. TimeSpan can be coerced to and from String and itself only.

LEN

Descrição

Obtém o comprimento de uma seqüência de caracteres

Sintaxe

LEN(expression)

Argumentos

expression -- The string to be evaluated.

Exemplo: MyDataColumn.Expressão="Len(ItemName)"

ISNULL

Descrição

Checks an expressão and Either returns the Marcado expressão OR a valor Replacement.

Sintaxe

ISNULL(expression, replacementvalue)

Argumentos

expression -- The expression to check.

replacementvalue -- If expression is null, replacementvalue is returned.

Exemplo: myDataColumn.Expressão="IsNull (Price,-1)"

IIF

Descrição

Obtém um dos dois valores dependendo do resultado de uma expressão lógica.

Sintaxe

IIF(expr, truepart, falsepart)

Argumentos

expr -- The expression to evaluate.

truepart -- The value to return if the expression is true.

falsepart -- The value to return if the expression is false.

Exemplo: myDataColumn. Expressão = "IIF(Total>1000, 'expensive', 'dear')

TRIM

Descrição

ALL em branco leading and trailing removes Caracteres LIKE \n, \r, \t, ' '

Sintaxe

TRIM(expression)

Argumentos

expression -- The expression to trim.

SUBSTRING

Descrição

A sub-gets Cadeia de Caracteres of a specified length, Starting at a apontar specified in the Cadeia de Caracteres.

Sintaxe

SUBSTRING(expression, start, length)

Argumentos

expression -- The source string for the substring.

start -- Integer that specifies where the substring starts.

length -- Integer that specifies the length of the substring.

Exemplo: myDataColumn.Expression = "Subcadeia(Phone, 7, 8)"

ObservaçãoObservação:

You can reset the Expression property by assigning it a null value or empty string.If a default value is set on the expression column, all previously filled rows are assigned the default value after the Expression property is reset.

The following example creates three columns in a DataTable.The second and Third Colunas Contain Expressions; o segundo calcula imposto usando uma variável imposto e o terceiro adiciona o resultado do cálculo para o valor da Primeiro coluna.The resulting table is displayed in a DataGrid control.

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;
}


Contribuições da comunidade

ADICIONAR
Mostrar: