DataRow.Item[] Egenskap

Definition

Hämtar eller anger data som lagras i en angiven kolumn.

Överlagringar

Name Description
Item[DataColumn]

Hämtar eller anger data som lagras i den angivna DataColumn.

Item[Int32]

Hämtar eller anger data som lagras i kolumnen som anges av indexet.

Item[String]

Hämtar eller anger data som lagras i kolumnen som anges med namn.

Item[DataColumn, DataRowVersion]

Hämtar den angivna versionen av data som lagras i den angivna DataColumn.

Item[Int32, DataRowVersion]

Hämtar data som lagras i kolumnen, som anges av index och version av de data som ska hämtas.

Item[String, DataRowVersion]

Hämtar den angivna versionen av data som lagras i den namngivna kolumnen.

Item[DataColumn]

Hämtar eller anger data som lagras i den angivna 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

Parametrar

column
DataColumn

En DataColumn som innehåller data.

Egenskapsvärde

En Object som innehåller data.

Undantag

Kolumnen tillhör inte den här tabellen.

Är column null.

Ett försök gjordes att ange ett värde på en borttagen rad.

Datatyperna för värdet och kolumnen matchar inte.

Exempel

Följande exempel visar hur egenskapen används Item[] för att hämta och ange värdet för ett specifikt kolumnindex. Det första exemplet hämtar värdet för den första kolumnen på en rad som en användare klickar på i en DataGrid kontroll. Den andra anger ett värde som skickas som ett argument till metoden.

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

Kommentarer

När du anger egenskapen genereras ett undantag om ett undantag inträffar i ColumnChanging händelsen.

Om detta är en omedelbar redigering, se EndEdit för undantag som kan genereras.

Gäller för

Item[Int32]

Hämtar eller anger data som lagras i kolumnen som anges av indexet.

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

Parametrar

columnIndex
Int32

Kolumnens nollbaserade index.

Egenskapsvärde

En Object som innehåller data.

Undantag

Inträffar när du försöker ange ett värde på en borttagen rad.

Argumentet columnIndex ligger inom intervallet.

Inträffar när du anger värdet och det nya värdet inte Type matchar DataType.

Exempel

Följande exempel visar hur egenskapen används Item[] för att hämta och ange värdet för ett specifikt kolumnindex. Det första exemplet hämtar värdet för den första kolumnen på en rad som en användare klickar på i en DataGrid kontroll.

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

Kommentarer

När du anger egenskapen genereras ett undantag om ett undantag inträffar i ColumnChanging händelsen.

Om det här är en redigering kan du läsa EndEdit om undantag som kan genereras.

Gäller för

Item[String]

Hämtar eller anger data som lagras i kolumnen som anges med namn.

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

Parametrar

columnName
String

Kolumnens namn.

Egenskapsvärde

En Object som innehåller data.

Undantag

Det går inte att hitta den kolumn som anges av columnName .

Inträffar när du försöker ange ett värde på en borttagen rad.

Inträffar när du anger ett värde och det Type inte matchar DataType.

Inträffar när du försöker infoga ett null-värde i en kolumn där AllowDBNull är inställt på false.

Exempel

Följande exempel visar hur egenskapen används Item[] för att hämta och ange värdet för ett specifikt kolumnindex. Det första exemplet hämtar värdet för den första kolumnen på en rad som en användare klickar på i en DataGrid kontroll. Den andra anger ett värde som skickas som ett argument till metoden.

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

Kommentarer

När du anger egenskapen genereras ett undantag om ett undantag inträffar i ColumnChanging händelsen.

Om detta är en omedelbar redigering, se EndEdit för undantag som kan genereras.

Gäller för

Item[DataColumn, DataRowVersion]

Hämtar den angivna versionen av data som lagras i den angivna 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

Parametrar

column
DataColumn

En DataColumn som innehåller information om kolumnen.

version
DataRowVersion

Ett av de DataRowVersion värden som anger vilken radversion du vill ha. Möjliga värden är Default, Original, Currentoch Proposed.

Egenskapsvärde

En Object som innehåller data.

Undantag

Kolumnen tillhör inte tabellen.

Argumentet column innehåller null.

Raden har inte den här dataversionen.

Exempel

I följande exempel hämtas det aktuella värdet för en klickad cell i DataGrid kontrollen.

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

Kommentarer

Bör version inte förväxlas med RowState egenskapen. Argumentet version beskriver tillståndet för de data som finns i kolumnen i förhållande till kolumnens ursprungliga värde.

När du anger egenskapen genereras ett undantag om ett undantag inträffar i ColumnChanging händelsen.

Om detta är en omedelbar redigering, se EndEdit för undantag som kan genereras.

Se även

Gäller för

Item[Int32, DataRowVersion]

Hämtar data som lagras i kolumnen, som anges av index och version av de data som ska hämtas.

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

Parametrar

columnIndex
Int32

Kolumnens nollbaserade index.

version
DataRowVersion

Ett av de DataRowVersion värden som anger vilken radversion du vill ha. Möjliga värden är Default, Original, Currentoch Proposed.

Egenskapsvärde

En Object som innehåller data.

Undantag

Argumentet columnIndex ligger inom intervallet.

Datatyperna för värdet och kolumnen matchar inte.

Raden har inte den här dataversionen.

Ett försök gjordes att ange ett värde på en borttagen rad.

Exempel

I följande exempel hämtas det aktuella värdet för en kolumn via Item[] objektets DataRow egenskap.

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

Kommentarer

Du kan bara skapa eller uppdatera en rad när du anropar BeginEditEndEdit metoden. På samma sätt måste metoden anropas för att genomföra redigeringen. När du har anropat EndEdit metoden och innan du anropar AcceptChanges metoden lagras interna representationer av de ursprungliga och nya föreslagna värdena. Tills du anropar AcceptChangeskan du därför använda version argumentet för att ange vilken version av en kolumns värde du behöver, antingen DataRowVersion.Original eller DataRowVersion.Proposed. Men så fort du anropar AcceptChanges metoden återgår versionen av kolumnen till DataRowVersion.Original. Om raden är ny kan du också skicka DataRowVersion.Default för parametern för att hämta kolumnens standardvärde. När du skickar DataRowVersion.Currentreturnerar egenskapen det aktuella värdet, oavsett vilken version den har.

Note

Metoden BeginEdit anropas implicit när du ändrar värdet för en databunden kontroll eller när ett DataRow objekt läggs till i DataRowCollection. EndEdit Metoden anropas implicit när du anropar följande metoder: AcceptChanges -metoden DataRow för objektet, AcceptChanges -metoden DataTable för objektet eller CancelEdit metoden.

Däremot DataRowVersion returnerar uppräkningen Current versionen av data när EndEdit metoden har anropats.

Argumentet version bör inte förväxlas med RowState egenskapen. Argumentet version beskriver tillståndet för de data som finns i kolumnen i förhållande till kolumnens ursprungliga värde. Egenskapen RowState beskriver tillståndet för hela raden i förhållande till dess överordnade DataTable.

När du anger egenskapen genereras ett undantag om ett undantag inträffar i ColumnChanging händelsen.

Om detta är en omedelbar redigering, se EndEdit för undantag som kan genereras.

Gäller för

Item[String, DataRowVersion]

Hämtar den angivna versionen av data som lagras i den namngivna kolumnen.

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

Parametrar

columnName
String

Kolumnens namn.

version
DataRowVersion

Ett av de DataRowVersion värden som anger vilken radversion du vill ha. Möjliga värden är Default, Original, Currentoch Proposed.

Egenskapsvärde

En Object som innehåller data.

Undantag

Det går inte att hitta den kolumn som anges av columnName .

Datatyperna för värdet och kolumnen matchar inte.

Raden har inte den här dataversionen.

Raden har tagits bort.

Exempel

I följande exempel hämtas den aktuella versionen av data i en klickad cell i en DataGrid kontroll.

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

Kommentarer

Versionen bör inte förväxlas med RowState egenskapen . Argumentet version beskriver tillståndet för de data som finns i kolumnen i förhållande till kolumnens ursprungliga värde. Egenskapen RowState beskriver tillståndet för hela raden i förhållande till dess överordnade DataTable.

När du anger egenskapen genereras ett undantag om ett undantag inträffar i ColumnChanging händelsen.

Om detta är en omedelbar redigering, se EndEdit för undantag som kan genereras.

Se även

Gäller för