Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você pode usar o DataView para adicionar, excluir ou modificar linhas de dados na tabela subjacente. A capacidade de usar o DataView para modificar dados na tabela subjacente é controlada pela definição de uma das três propriedades booleanas do DataView. Essas propriedades são AllowNew, AllowEdite AllowDelete. Estão definidos como true por defeito.
Se AllowNew é verdadeiro, pode usar o método AddNew do DataView para criar um novo DataRowView. Note-se que uma nova linha não é realmente adicionada à estrutura subjacente DataTable até que o método EndEdit do DataRowView seja chamado. Se o CancelEdit método do DataRowView for chamado, a nova linha é descartada. Note também que só pode editar um DataRowView de cada vez. Se chamar o método AddNew ou BeginEdit do DataRowView enquanto existe uma linha pendente, EndEdit é chamado implicitamente para a linha pendente. Quando EndEdit é chamado, as alterações são aplicadas ao subjacente DataTable e podem ser posteriormente confirmadas ou rejeitadas usando os AcceptChanges métodos ou RejectChanges da DataTable, DataSet ou DataRow objeto. Se AllowNew for falso, uma exceção é lançada se chamar o método AddNew da DataRowView.
Se AllowEdit é verdade, pode modificar o conteúdo de um DataRow através do DataRowView. Você pode confirmar as alterações na linha subjacente usando DataRowView.EndEdit ou rejeitar as alterações usando DataRowView.CancelEdit. Observe que apenas uma linha pode ser editada de cada vez. Se chamar os métodos AddNew ou BeginEdit do DataRowView enquanto existe uma linha pendente, EndEdit é implicitamente chamada à linha pendente. Quando EndEdit é chamado, as alterações propostas são colocadas na versão de linha do DataRow subjacente e podem ser posteriormente confirmadas ou rejeitadas usando os métodos AcceptChanges ou RejectChanges do objeto DataTable, DataSet ou DataRow. Se AllowEdit for falso, uma exceção é lançada se tentar modificar um valor na DataView.
Quando um DataRowView existente está a ser editado, os eventos do DataTable subjacente continuam a ser disparados com as alterações propostas. Tenha em mente que, quando chamar EndEdit ou CancelEdit no DataRow subjacente, alterações pendentes podem ser aplicadas ou canceladas independentemente de se EndEdit ou CancelEdit for chamado no DataRowView.
Se AllowDelete for verdade, pode eliminar linhas do DataView utilizando o método Delete do objeto DataView ou DataRowView, e as linhas serão eliminadas do DataTable subjacente. Podes depois confirmar ou rejeitar as eliminações usando AcceptChanges ou RejectChanges respetivamente. Se AllowDelete for falso, será lançada uma exceção se chamar o método Delete de DataView ou de DataRowView.
O exemplo de código seguinte desativa o uso do DataView para eliminar linhas e adiciona uma nova linha à tabela subjacente utilizando o DataView.
Dim custTable As DataTable = custDS.Tables("Customers")
Dim custView As DataView = custTable.DefaultView
custView.Sort = "CompanyName"
custView.AllowDelete = False
Dim newDRV As DataRowView = custView.AddNew()
newDRV("CustomerID") = "ABCDE"
newDRV("CompanyName") = "ABC Products"
newDRV.EndEdit()
DataTable custTable = custDS.Tables["Customers"];
DataView custView = custTable.DefaultView;
custView.Sort = "CompanyName";
custView.AllowDelete = false;
DataRowView newDRV = custView.AddNew();
newDRV["CustomerID"] = "ABCDE";
newDRV["CompanyName"] = "ABC Products";
newDRV.EndEdit();