Condividi tramite


DataRow.Item[] Proprietà

Definizione

Ottiene o imposta i dati memorizzati in una colonna specificata.

Overload

Item[DataColumn]

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

Item[Int32]

Ottiene o imposta i dati archiviati nella colonna specificata in base all'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 DataColumn specificato.

Item[Int32, DataRowVersion]

Ottiene i dati archiviati nella colonna specificata in base all'indice e alla versione dei dati da recuperare.

Item[String, DataRowVersion]

Ottiene la versione specificata dei dati archiviati nella colonna specificata.

Item[DataColumn]

Origine:
DataRow.cs
Origine:
DataRow.cs
Origine:
DataRow.cs

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

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 che contiene i dati.

Valore della proprietà

Oggetto Object che contiene i dati dell'evento.

Eccezioni

La colonna non appartiene a questa tabella.

column è Null.

Si è tentato di impostare un valore in una riga eliminata.

Mancata corrispondenza tra i tipi di dati del valore e della colonna.

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 su cui un utente fa clic 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]

Origine:
DataRow.cs
Origine:
DataRow.cs
Origine:
DataRow.cs

Ottiene o imposta i dati archiviati nella colonna specificata in base all'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 dell'evento.

Eccezioni

Viene generata quando si tenta di impostare un valore in una riga eliminata.

L'argomento columnIndex non è compreso nell'intervallo.

Viene generata quando si imposta il valore e la classe Type del nuovo valore non corrisponde alla proprietà 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 su cui un utente fa clic 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]

Origine:
DataRow.cs
Origine:
DataRow.cs
Origine:
DataRow.cs

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 dell'evento.

Eccezioni

Impossibile trovare la colonna specificata dal parametro columnName.

Viene generata quando si tenta di impostare un valore in una riga eliminata.

Viene generata quando si imposta un valore e la relativa classe Type non corrisponde alla proprietà DataType.

Si verifica quando si tenta di immettere un valore null in una colonna la cui proprietà AllowDBNull è impostata 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 su cui un utente fa clic 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]

Origine:
DataRow.cs
Origine:
DataRow.cs
Origine:
DataRow.cs

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

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 che contiene informazioni sulla colonna.

version
DataRowVersion

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

Valore della proprietà

Oggetto Object che contiene i dati dell'evento.

Eccezioni

La colonna non appartiene a questa tabella.

L'argomento column è null.

La riga non dispone di questa versione dei 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]

Origine:
DataRow.cs
Origine:
DataRow.cs
Origine:
DataRow.cs

Ottiene i dati archiviati nella colonna specificata in base all'indice e alla 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 valori dell'enumerazione DataRowVersion che specifica la versione della riga desiderata. I valori consentiti sono Default, Original, Current e Proposed.

Valore della proprietà

Oggetto Object che contiene i dati dell'evento.

Eccezioni

L'argomento columnIndex non è compreso nell'intervallo.

Mancata corrispondenza tra i tipi di dati del valore e della colonna.

La riga non dispone di questa versione dei dati.

Si è tentato di impostare un valore in 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 le rappresentazioni interne dei valori originali e nuovi proposti. Pertanto, finché non si chiama AcceptChanges, è possibile usare l'argomento version per specificare la versione del valore di una colonna necessaria, DataRowVersion.Original ovvero o DataRowVersion.Proposed. Tuttavia, non appena si chiama il AcceptChanges metodo , la versione della colonna viene ripristinata 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 relativa versione.

Nota

Il metodo viene chiamato in modo implicito quando si modifica il valore di un controllo associato a dati o quando viene aggiunto un oggetto 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 .DataRow

Al contrario, l'enumerazione DataRowVersion restituisce Current la versione dei dati dopo la chiamata del EndEdit metodo.

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]

Origine:
DataRow.cs
Origine:
DataRow.cs
Origine:
DataRow.cs

Ottiene la versione specificata dei dati archiviati nella colonna specificata.

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 valori dell'enumerazione DataRowVersion che specifica la versione della riga desiderata. I valori consentiti sono Default, Original, Current e Proposed.

Valore della proprietà

Oggetto Object che contiene i dati dell'evento.

Eccezioni

Impossibile trovare la colonna specificata dal parametro columnName.

Mancata corrispondenza tra i tipi di dati del valore e della colonna.

La riga non dispone di questa versione dei 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