Como: Identificador de erros quando uma Novo linha é Adicionado a um Controlarar de ListObject
Se aplica a |
---|
As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office. Projetos de nível de documento
Projetos de nível de aplicativo
For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto. |
Os usuários podem adicionar Novo linhas a um Controlarar ListObject que está Ligado a dados.Às vezes, a relação entre o objeto de lista para a Origem de dados causa erros de rotina.Por exemplo, você pode mapear quais colunas que deseja Aparecerr no ListObject, portanto, se você omitir colunas que tenham restrições, como um campo que não pode aceitar nulo valores, erros são gerados sempre que uma linha é criada.Você pode Gravar código para adicionar os valores ausentes em um manipulador de eventos para o evento ErrorAddDataBoundRow.
Para manipular erros que ocorrem quando um dados ligados a linha é Adicionado
Criar variáveis para a identificação e DataTable no nível de classe.
Dim id As Integer = 0 Dim employeeTable As System.Data.DataTable
private int id = 0; private System.Data.DataTable employeeTable;
Criar um novo DataTable e adicionar colunas de exemplo e os dados no manipulador de eventos Startup da classe Sheet1 (em um projeto de nível de documento) ou classe de ThisAddIn (em um projeto de nível de aplicativo).
employeeTable = New System.Data.DataTable("Employees") Dim column As System.Data.DataColumn = employeeTable.Columns.Add("Id", GetType(Int32)) column.AllowDBNull = False employeeTable.Columns.Add("FirstName", GetType(String)) employeeTable.Columns.Add("LastName", GetType(String)) employeeTable.Columns.Add("Age", GetType(Int32)) employeeTable.Rows.Add(id, "Nancy", "Anderson", 56) employeeTable.Rows.Add(id, "Robert", "Brown", 44) id += 1 list1.SetDataBinding(employeeTable, "", "FirstName", "LastName", "Age")
employeeTable = new System.Data.DataTable("Employees"); System.Data.DataColumn column = employeeTable.Columns.Add("Id", typeof(int)); column.AllowDBNull = false; employeeTable.Columns.Add("FirstName", typeof(string)); employeeTable.Columns.Add("LastName", typeof(string)); employeeTable.Columns.Add("Age", typeof(int)); employeeTable.Rows.Add(id, "Nancy", "Anderson", "56"); employeeTable.Rows.Add(id, "Robert", "Brown", "44"); id++; list1.SetDataBinding(employeeTable, "", "FirstName", "LastName", "Age"); list1.ErrorAddDataBoundRow += new Microsoft.Office.Tools.Excel. ErrorAddDataBoundRowEventHandler(list1_ErrorAddDataBoundRow);
Do evento manipulador para o evento de ErrorAddDataBoundRow, adicionar o Avançar número de identificação incrementado ao campo ID e adiciona uma linha novamente.
Private Sub list1_ErrorAddDataBoundRow(ByVal sender As Object, ByVal e As _ Microsoft.Office.Tools.Excel.ErrorAddDataBoundRowEventArgs) _ Handles list1.ErrorAddDataBoundRow Dim row As System.Data.DataRow = (CType(e.Item, System.Data.DataRowView)).Row If TypeOf (e.InnerException) Is NoNullAllowedException Then row("Id") = id id += 1 e.Retry = True End If End Sub
private void list1_ErrorAddDataBoundRow(object sender, Microsoft.Office.Tools.Excel.ErrorAddDataBoundRowEventArgs e) { System.Data.DataRow row = ((System.Data.DataRowView)e.Item).Row; if (e.InnerException is NoNullAllowedException) { row["Id"]= id; id++; e.Retry = true; } }
Compilando o código
- Este exemplo de código assume que um existente ListObject chamado list1 na planilha em que esse código aparece.
Consulte também
Tarefas
Como: Mapear ListObject colunas para dados
Como: Validar dados quando uma Novo linha é Adicionado a um Controlarar de ListObject
Conceitos
Desenvolvimento de Adicionar-in de aplicativo-nível do Excel
Adicionar controles a documentos do Office em tempo de execução
Noções básicas sobre ListObject coluna e linha de ordem de persistência
Outros recursos
Controles em documentos do Office
Date |
History |
Motivo |
---|---|---|
De 2008 de julho |
Modificado o exemplo de forma que ele pode ser usado em um aplicativo-nível Adicionar - in. |
Alteração de recurso do SP1. |