DataRow.Item[] Proprietà

Definizione

Ottiene o imposta i dati archiviati in una colonna specificata.

Overload

Nome Descrizione
Item[DataColumn]

Ottiene o imposta i dati archiviati nell'oggetto specificato DataColumn.

Item[Int32]

Ottiene o imposta i dati archiviati nella colonna specificata dall'indice.

Item[String]

Ottiene o imposta i dati archiviati nella colonna specificata in base al nome.

Item[DataColumn, DataRowVersion]

Ottiene la versione specificata dei dati archiviati nell'oggetto specificato DataColumn.

Item[Int32, DataRowVersion]

Ottiene i dati archiviati nella colonna, specificati dall'indice e dalla versione dei dati da recuperare.

Item[String, DataRowVersion]

Ottiene la versione specificata dei dati archiviati nella colonna denominata.

Item[DataColumn]

Ottiene o imposta i dati archiviati nell'oggetto specificato DataColumn.

public:
 property System::Object ^ default[System::Data::DataColumn ^] { System::Object ^ get(System::Data::DataColumn ^ column); void set(System::Data::DataColumn ^ column, System::Object ^ value); };
public object this[System.Data.DataColumn column] { get; set; }
member this.Item(System.Data.DataColumn) : obj with get, set
Default Public Property Item(column As DataColumn) As Object

Parametri

column
DataColumn

Oggetto DataColumn contenente i dati.

Valore della proprietà

Oggetto Object che contiene i dati.

Eccezioni

La colonna non appartiene a questa tabella.

è column null.

È stato effettuato un tentativo di impostare un valore su una riga eliminata.

I tipi di dati del valore e la colonna non corrispondono.

Esempio

Negli esempi seguenti viene illustrato l'uso della Item[] proprietà per ottenere e impostare il valore di un indice di colonna specifico. Il primo esempio ottiene il valore della prima colonna in qualsiasi riga selezionata da un utente in un DataGrid controllo . Il secondo imposta un valore passato come argomento al metodo .

Private Sub DataGrid1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs)
    
    Dim dataGridTable As DataTable = _
        CType(DataGrid1.DataSource, DataTable)
    ' Set the current row using the RowNumber 
    ' property of the CurrentCell.
    Dim currentRow As DataRow = _
        dataGridTable.Rows(DataGrid1.CurrentCell.RowNumber)
    Dim column As DataColumn = dataGridTable.Columns(1)

    ' Get the value of the column 1 in the DataTable.
    label1.Text = currentRow(column).ToString()
End Sub
 
Private Sub SetDataRowValue( _
    ByVal grid As DataGrid, ByVal newVal As Object)

    ' Set the value of a column in the last row of a DataGrid.
    Dim table As DataTable = CType(grid.DataSource, DataTable)
    Dim row As DataRow = table.Rows(table.Rows.Count - 1)
    Dim column As DataColumn = table.Columns("FirstName")
    row(column)= newVal
End Sub

Commenti

Quando si imposta la proprietà , viene generata un'eccezione se si verifica un'eccezione nell'evento ColumnChanging .

Se si tratta di una modifica immediata, vedere EndEdit per le eccezioni che è possibile generare.

Si applica a

Item[Int32]

Ottiene o imposta i dati archiviati nella colonna specificata dall'indice.

public:
 property System::Object ^ default[int] { System::Object ^ get(int columnIndex); void set(int columnIndex, System::Object ^ value); };
public object this[int columnIndex] { get; set; }
member this.Item(int) : obj with get, set
Default Public Property Item(columnIndex As Integer) As Object

Parametri

columnIndex
Int32

Indice in base zero della colonna.

Valore della proprietà

Oggetto Object che contiene i dati.

Eccezioni

Si verifica quando si tenta di impostare un valore in una riga eliminata.

L'argomento non è compreso nell'intervallo columnIndex .

Si verifica quando si imposta il valore e il nuovo valore Type non corrisponde a DataType.

Esempio

Negli esempi seguenti viene illustrato l'uso della Item[] proprietà per ottenere e impostare il valore di un indice di colonna specifico. Il primo esempio ottiene il valore della prima colonna in qualsiasi riga selezionata da un utente in un DataGrid controllo .

private void DataGrid1_Click(object sender,
    System.EventArgs e)
{
    // Get the DataTable the grid is bound to.
    DataGrid thisGrid = (DataGrid) sender;
    DataTable table = (DataTable) thisGrid.DataSource;
    DataRow currentRow =
        table.Rows[thisGrid.CurrentCell.RowNumber];

    // Get the value of the column 1 in the DataTable.
    Console.WriteLine(currentRow[1]);
    // You can also use the name of the column:
    // Console.WriteLine(currentRow["FirstName"])
}

private void SetDataRowValue(DataGrid grid, object newValue)
{
    // Set the value of the last column in the last row of a DataGrid.
    DataTable table;
    table = (DataTable) grid.DataSource;
    DataRow row;

    // Get last row
    row = (DataRow)table.Rows[table.Rows.Count-1];

    // Set value of last column
    row[table.Columns.Count-1] = newValue;
}
Private Sub DataGrid1_Click _
    (ByVal sender As System.Object, ByVal e As System.EventArgs)

    ' Get the DataTable the grid is bound to.
    Dim thisGrid As DataGrid = CType(sender, DataGrid)
    Dim table As DataTable = CType(thisGrid.DataSource, DataTable)
    Dim currentRow As DataRow = _
        table.Rows(thisGrid.CurrentCell.RowNumber)

    ' Get the value of the column 1 in the DataTable.
    Console.WriteLine(currentRow(1))
    ' You can also use the name of the column:
    ' Console.WriteLine(currentRow("FirstName"))
    End Sub

    Private Sub SetDataRowValue( _
        ByVal grid As DataGrid, ByVal newValue As Object)

    ' Set the value of the last column in the last row of a DataGrid.
    Dim table As DataTable
    table = CType(grid.DataSource, DataTable)
    Dim row As DataRow 
    row = table.Rows(table.Rows.Count-1)
    row(table.Columns.Count-1) = newValue
End Sub

Commenti

Quando si imposta la proprietà , viene generata un'eccezione se si verifica un'eccezione nell'evento ColumnChanging .

Se si tratta di una modifica, vedere EndEdit per le eccezioni che è possibile generare.

Si applica a

Item[String]

Ottiene o imposta i dati archiviati nella colonna specificata in base al nome.

public:
 property System::Object ^ default[System::String ^] { System::Object ^ get(System::String ^ columnName); void set(System::String ^ columnName, System::Object ^ value); };
public object this[string columnName] { get; set; }
member this.Item(string) : obj with get, set
Default Public Property Item(columnName As String) As Object

Parametri

columnName
String

Nome della colonna.

Valore della proprietà

Oggetto Object che contiene i dati.

Eccezioni

Impossibile trovare la colonna specificata da columnName .

Si verifica quando si tenta di impostare un valore in una riga eliminata.

Si verifica quando si imposta un valore e il relativo Type non corrisponde a DataType.

Si verifica quando si tenta di inserire un valore Null in una colonna in cui AllowDBNull è impostato su false.

Esempio

Negli esempi seguenti viene illustrato l'uso della Item[] proprietà per ottenere e impostare il valore di un indice di colonna specifico. Il primo esempio ottiene il valore della prima colonna in qualsiasi riga selezionata da un utente in un DataGrid controllo . Il secondo imposta un valore passato come argomento al metodo .

private void DataGrid1_Click(
    object sender, System.EventArgs e)
{
    // Get the DataTable the grid is bound to.
    DataGrid thisGrid = (DataGrid) sender;
    DataTable table = (DataTable) thisGrid.DataSource;
    DataRow currentRow =
        table.Rows[thisGrid.CurrentCell.RowNumber];

    // Get the value of the column 1 in the DataTable.
    Console.WriteLine(currentRow["FirstName"]);
    // You can also use the index:
    // Console.WriteLine(currentRow[1]);
}

private void SetDataRowValue(
    DataGrid grid, object newValue)
{
    // Set the value of the first column in
    // the last row of a DataGrid.
    DataTable table = (DataTable) grid.DataSource;
    DataRow row = table.Rows[table.Rows.Count-1];
    row["FirstName"] = newValue;
}
Private Sub DataGrid1_Click( _
    sender As Object, e As System.EventArgs)
     
    ' Get the DataTable the grid is bound to.
    Dim thisGrid As DataGrid = CType(sender, DataGrid)
    Dim table As DataTable = _
        CType(thisGrid.DataSource, DataTable)
    Dim currentRow As DataRow = _
        table.Rows(thisGrid.CurrentCell.RowNumber)

    ' Get the value of the column 1 in the DataTable.
    Console.WriteLine(currentRow("FirstName"))
    ' You can also use the index:
    ' Console.WriteLine(currentRow(1).ToString())
End Sub
    
Private Sub SetDataRowValue( _
    grid As DataGrid, newValue As Object)
    ' Set the value of the first column in 
    ' the last row of a DataGrid.
    Dim table As DataTable = _
        CType(grid.DataSource, DataTable)
    Dim row As DataRow
    row = table.Rows((table.Rows.Count - 1))
    row("FirstName") = newValue
End Sub

Commenti

Quando si imposta la proprietà , viene generata un'eccezione se si verifica un'eccezione nell'evento ColumnChanging .

Se si tratta di una modifica immediata, vedere EndEdit per le eccezioni che è possibile generare.

Si applica a

Item[DataColumn, DataRowVersion]

Ottiene la versione specificata dei dati archiviati nell'oggetto specificato DataColumn.

public:
 property System::Object ^ default[System::Data::DataColumn ^, System::Data::DataRowVersion] { System::Object ^ get(System::Data::DataColumn ^ column, System::Data::DataRowVersion version); };
public object this[System.Data.DataColumn column, System.Data.DataRowVersion version] { get; }
member this.Item(System.Data.DataColumn * System.Data.DataRowVersion) : obj
Default Public ReadOnly Property Item(column As DataColumn, version As DataRowVersion) As Object

Parametri

column
DataColumn

Oggetto DataColumn contenente informazioni sulla colonna.

version
DataRowVersion

Uno dei DataRowVersion valori che specifica la versione di riga desiderata. I valori consentiti sono Default, Original, Current e Proposed.

Valore della proprietà

Oggetto Object che contiene i dati.

Eccezioni

La colonna non appartiene alla tabella.

L'argomento column contiene null.

La riga non dispone di questa versione di dati.

Esempio

Nell'esempio seguente viene restituito il valore corrente di una cella selezionata nel DataGrid controllo .

private void DataGrid1_Click(object sender,
    System.EventArgs e)
{
    DataTable dataGridTable =
        (DataTable)DataGrid1.DataSource;

    // Set the current row using the RowNumber
    // property of the CurrentCell.
    DataRow currentRow = dataGridTable.Rows[DataGrid1.CurrentCell.RowNumber];
    DataColumn column = dataGridTable.Columns[1];

    // Get the value of the column 1 in the DataTable.
    Console.WriteLine(currentRow[column, DataRowVersion.Current]);
}
Private Sub DataGrid1_Click _
    (ByVal sender As System.Object, ByVal e As System.EventArgs)

    Dim dataGridTable As DataTable = _
        CType(DataGrid1.DataSource, DataTable)

    ' Set the current row using the RowNumber 
    ' property of the CurrentCell.
    Dim currentRow As DataRow = dataGridTable.Rows( _
        DataGrid1.CurrentRowIndex)
    Dim column As DataColumn = dataGridTable.Columns(1)

    ' Get the value of the column 1 in the DataTable.
    label1.Text = currentRow(column, _
        DataRowVersion.Current).ToString()
End Sub

Commenti

L'oggetto version non deve essere confuso con la RowState proprietà . L'argomento version descrive lo stato dei dati contenuti nella colonna rispetto al valore originale della colonna.

Quando si imposta la proprietà , viene generata un'eccezione se si verifica un'eccezione nell'evento ColumnChanging .

Se si tratta di una modifica immediata, vedere EndEdit per le eccezioni che è possibile generare.

Vedi anche

Si applica a

Item[Int32, DataRowVersion]

Ottiene i dati archiviati nella colonna, specificati dall'indice e dalla versione dei dati da recuperare.

public:
 property System::Object ^ default[int, System::Data::DataRowVersion] { System::Object ^ get(int columnIndex, System::Data::DataRowVersion version); };
public object this[int columnIndex, System.Data.DataRowVersion version] { get; }
member this.Item(int * System.Data.DataRowVersion) : obj
Default Public ReadOnly Property Item(columnIndex As Integer, version As DataRowVersion) As Object

Parametri

columnIndex
Int32

Indice in base zero della colonna.

version
DataRowVersion

Uno dei DataRowVersion valori che specifica la versione di riga desiderata. I valori consentiti sono Default, Original, Current e Proposed.

Valore della proprietà

Oggetto Object che contiene i dati.

Eccezioni

L'argomento non è compreso nell'intervallo columnIndex .

I tipi di dati del valore e la colonna non corrispondono.

La riga non dispone di questa versione di dati.

È stato effettuato un tentativo di impostare un valore su una riga eliminata.

Esempio

Nell'esempio seguente viene restituito il valore corrente di una colonna tramite la Item[] proprietà dell'oggetto DataRow .

Private Sub DataGrid1_Click _
    (ByVal sender As System.Object, ByVal e As System.EventArgs)
    
    ' Set the current row using the RowNumber property of the CurrentCell.
    Dim currentRow As DataRow = CType(DataGrid1.DataSource, DataTable). _
       Rows(DataGrid1.CurrentCell.RowNumber)

    ' Get the value of the column 1 in the DataTable.
    label1.Text = currentRow(1, DataRowVersion.Current).ToString()
End Sub

Commenti

È possibile creare o aggiornare una riga solo dopo aver chiamato il BeginEdit metodo . Analogamente, è necessario chiamare il metodo per eseguire il EndEdit commit della modifica. Dopo aver chiamato il EndEdit metodo e prima di chiamare il AcceptChanges metodo, vengono archiviate rappresentazioni interne dei valori originali e nuovi proposti. Pertanto, fino a quando non si chiama AcceptChanges, è possibile usare l'argomento version per specificare la versione del valore di una colonna necessaria, ovvero DataRowVersion.Original o DataRowVersion.Proposed. Tuttavia, non appena si chiama il AcceptChanges metodo , la versione della colonna torna a DataRowVersion.Original. Se la riga è nuova, è anche possibile passare DataRowVersion.Default per il parametro per recuperare il valore predefinito della colonna. Quando si passa , la proprietà restituisce DataRowVersion.Currentil valore corrente, indipendentemente dalla versione.

Note

Il metodo viene chiamato in modo implicito quando si modifica il valore di un controllo associato a dati o quando un DataRow oggetto viene aggiunto a DataRowCollection. Il BeginEditEndEdit metodo viene chiamato in modo implicito quando si chiamano i metodi seguenti: il AcceptChanges metodo dell'oggettoDataRow, il AcceptChanges metodo dell'oggetto DataTable o il CancelEdit metodo .

Al contrario, l'enumerazione DataRowVersion restituisce Current la versione dei dati dopo che il EndEdit metodo è stato chiamato.

L'argomento version non deve essere confuso con la RowState proprietà . L'argomento version descrive lo stato dei dati contenuti nella colonna rispetto al valore originale della colonna. La RowState proprietà descrive lo stato dell'intera riga rispetto al relativo elemento padre DataTable.

Quando si imposta la proprietà , viene generata un'eccezione se si verifica un'eccezione nell'evento ColumnChanging .

Se si tratta di una modifica immediata, vedere EndEdit per le eccezioni che è possibile generare.

Si applica a

Item[String, DataRowVersion]

Ottiene la versione specificata dei dati archiviati nella colonna denominata.

public:
 property System::Object ^ default[System::String ^, System::Data::DataRowVersion] { System::Object ^ get(System::String ^ columnName, System::Data::DataRowVersion version); };
public object this[string columnName, System.Data.DataRowVersion version] { get; }
member this.Item(string * System.Data.DataRowVersion) : obj
Default Public ReadOnly Property Item(columnName As String, version As DataRowVersion) As Object

Parametri

columnName
String

Nome della colonna.

version
DataRowVersion

Uno dei DataRowVersion valori che specifica la versione di riga desiderata. I valori consentiti sono Default, Original, Current e Proposed.

Valore della proprietà

Oggetto Object che contiene i dati.

Eccezioni

Impossibile trovare la colonna specificata da columnName .

I tipi di dati del valore e la colonna non corrispondono.

La riga non dispone di questa versione di dati.

La riga è stata eliminata.

Esempio

Nell'esempio seguente viene recuperata la versione corrente dei dati in una cella selezionata di un DataGrid controllo .

private void DataGrid1_Click(object sender, System.EventArgs e)
{
    // Set the current row using the RowNumber
    // property of the CurrentCell.
    DataRow currentRow =
        ((DataTable)(DataGrid1.DataSource)).
        Rows[DataGrid1.CurrentCell.RowNumber];

    // Print the current value of the column named "FirstName."
    Console.WriteLine(currentRow["FirstName",
        DataRowVersion.Current]);
}
Private Sub DataGrid1_Click _
    (ByVal sender As System.Object, ByVal e As System.EventArgs)
    
    ' Set the current row using the RowNumber property 
    ' of the CurrentCell.
    Dim currentRow As DataRow = _
        CType(DataGrid1.DataSource, DataTable). _
        Rows(DataGrid1.CurrentCell.RowNumber)

    ' Print the current value of the column named "FirstName."
    Console.WriteLine(currentRow("FirstName", _
        DataRowVersion.Current).ToString())
End Sub

Commenti

La versione non deve essere confusa con la RowState proprietà . L'argomento version descrive lo stato dei dati contenuti nella colonna rispetto al valore originale della colonna. La RowState proprietà descrive lo stato dell'intera riga rispetto al relativo elemento padre DataTable.

Quando si imposta la proprietà , viene generata un'eccezione se si verifica un'eccezione nell'evento ColumnChanging .

Se si tratta di una modifica immediata, vedere EndEdit per le eccezioni che è possibile generare.

Vedi anche

Si applica a