Mensagem de erro "Não é possível criar uma lista filho" ocorre quando você abre um formulário no Visual Studio .NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 816799
Informações de versão beta
Este artigo aborda uma versão beta de um Microsoft produto. As informações neste artigo são fornecidas como - é e estão sujeitas a alterações sem aviso prévio.

Nenhum suporte formal está disponível da Microsoft para este produto beta. Para obter informações sobre como obter suporte para uma versão beta, consulte a documentação que acompanha o Beta arquivos do produto ou verifique o local da Web onde você a versão foi baixada.
Sintomas
Quando você excluir a tabela que está vinculada a um formulário de controle do esquema do DataSet e salvar o projeto em Microsoft Visual Studio.NET, você poderá receber a seguinte mensagem de erro quando você abre o formulário no criar modo de exibição:

Não é possível criar uma lista filho para campo TableName.

Os controles que são adicionados antes dos dados do controle de limite são excluídas do formulário pelo Visual Studio .NET e você receber a seguinte mensagem de erro nos dados de controle acoplado:

System.ArgumentException: Não é possível criar uma lista filho para campo TableName.
Causa
No código gerado pelo Windows Form Designer, os controles são exibidos no formulário quando a matriz de controle é adicionada aos controles de coleção do formulário. O último controle que é adicionado ao formulário tem o índice 0 na matriz de controle, o primeiro controle tem o índice mais alto, e em seguida, os outros controles. Quando o esquema XML é alterado, os dados de controle acoplado gera um erro e os controles que foram adicionados ao formulário antes dos dados ligados controle são removidos da matriz porque os controles estão após os dados ligados controle na matriz de controle. Portanto, os controles não são adicionados à coleção Controls do formulário e não são exibidos.
Como Contornar
Para contornar esse problema, não salve o projeto depois de excluir a tabela do arquivo de esquema do DataSet. Abra o formulário do Windows e, em seguida, defina a propriedade DataSource e a propriedade DisplayMember do controle acoplado como none . Se os controles forem perdidos, você pode adicionar controles manualmente à coleção Controls do Form1. Para fazer isso para o aplicativo de exemplo que é usado na seção "Mais informações" deste artigo, execute as seguintes etapas:
  1. Clique com o botão direito do mouse no Form1 e, em seguida, clique em View Code .
  2. No procedimento de região de código do Windows Form Designer gerado InitializeComponent , localize a instrução a seguir no código do Form1:

    código do Microsoft Visual Basic .NET
    Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.TextBox2, Me.TextBox1, Me.ListBox1})
    código Microsoft Visual translation from VPE for Csharp .NET
    this.Controls.AddRange(new System.Windows.Forms.Control[] {this.textBox2,this.textBox1,this.listBox1});
  3. Adicione o nome dos controles ausentes:

    código do Visual Basic .NET
    Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.TextBox2, Me.TextBox1, Me.Button2,Me.Button1,Me.ListBox1})
    código do Visual .NET translation from VPE for Csharp
    this.Controls.AddRange(new System.Windows.Forms.Control[] {  this.textBox2,this.textBox1,this.button1,this.button2,  this.listBox1});
Situação
Esse comportamento é por design.
Mais Informações

Etapas para reproduzir o comportamento

  1. No Visual Studio. NET, crie um novo aplicativo do Windows usando o Visual Basic .NET ou Visual translation from VPE for Csharp .NET. Por padrão, é criado o Form1.
  2. Crie uma nova conexão de dados. Para fazer isso, execute as seguintes etapas:
    1. No menu Exibir , clique em Server Explorer .
    2. No Server Explorer , clique Conexões de dados com o botão direito do mouse e, em seguida, clique em Add Connection .
    3. Na janela de Propriedades de vínculo de dados , clique na guia conexão .
    4. Digite o nome do computador local que está executando SQL Server na caixa Selecione ou digite um nome de servidor e, em seguida, clique em NorthWind na lista Selecione o banco de dados no servidor .
  3. Na caixa de ferramentas , clique na guia dados e adicione um SqlConnection controle ao Form1.
  4. Clique com o botão direito do controle SqlConnection1 e, em seguida, clique em Propriedades .
  5. Na janela Properties , defina o valor da propriedade ConnectionString para a conexão de dados foi criada na etapa 2.
  6. Adicione um controle SqlDataAdapter ao Form1. No Data Adapter Configuration Wizard , clique em Avançar três vezes e, em seguida, digite a instrução SQL a seguir:
    select * from Customers
  7. Clique em Avançar e clique em Concluir para fechar o assistente.
  8. Clique com o botão direito do mouse SqlDataAdapter1 e, em seguida, clique em Generate Dataset . Clique em OK .
  9. Terminar de adicionar controles ao formulário. Para fazer isso, execute as seguintes etapas:
    1. Adicione dois controles de botão ao Form1.
    2. Adicione um controle ListBox ao Form1.
    3. Clique com o botão direito do mouse em ListBox1 e, em seguida, clique em Propriedades .
    4. Na janela Properties , defina o valor da propriedade DataSource como DataSet11 e, em seguida, defina o valor da propriedade DisplayMember como Customers.CustomerID .
    5. Adicione dois controles TextBox ao Form1.
  10. No menu Exibir , clique em Solution Explorer .
  11. No Solution Explorer, clique duas vezes em DataSet1.xsd .
  12. Clique com o botão direito na tabela clientes e, em seguida, clique em Excluir .
  13. No menu arquivo , clique em Salvar tudo para salvar o projeto.
  14. Clique duas vezes em Form1.vb para abrir Form1. Aparece a mensagem de erro mencionada na seção "Sintomas" deste artigo e todos os controles que foram adicionados ao Form1 antes ListBox1 foi adicionado são removidos.
Referências
Para obter mais informações, visite o seguinte site da Microsoft Developer Network (MSDN):

Propriedades

ID do Artigo: 816799 - Última Revisão: 05/12/2007 08:23:32 - Revisão: 1.4

Microsoft ADO.NET 1.0, Microsoft ADO.NET 1.1, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# .NET 2003 Standard Edition

  • kbmt kbtshoot kberrmsg kbprb kbsystemdata kbschema kbwindowsforms kbtable kbstoredproc kbsqlclient kbdesigner kbdatabinding kbdatabase kbdataadapter kbctrl kbcontrol kbcollections KB816799 KbMtpt
Comentários