CORRECÇÃO: Dados não é classificados corretamente em um controle DataGrid em um aplicativo do Windows no .NET Framework 1.1

Traduções deste artigo Traduções deste artigo
ID do artigo: 828099 - Exibir os produtos aos quais esse artigo se aplica.
Aviso
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Quando você adicionar um controle DataGrid para um aplicativo do Windows que é criado usando o Microsoft Visual Studio. NET, e em seguida, você definir a propriedade DataSource do controle DataGrid , você pode observar que os dados não classificados corretamente após você excluir um registro de dados da fonte de dados.

Resolução

Informações de atualização de software

Para resolver esse problema, obtenha o service pack mais recente para o Microsoft .NET Framework 1.1. Para baixar o service pack mais recente, visite o seguinte site da Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyId=A8F5654F-088E-40B2-BBDB-A83353618B38

Como Contornar

Para contornar esse problema, execute estas etapas:
  1. Localize o método BIND no arquivo Form1.cs:
    frm.Controls.Add(dataGrid); 
    		dataGrid.DataSource = dv;
  2. Substitua o código localizado na etapa 1 com o código a seguir:
    dataGrid.DataSource = dv;
    		frm.Controls.Add(dataGrid);
  3. Recriar o aplicativo e, em seguida, executar o aplicativo.

    Você não irá notar o comportamento mencionado na seção "Sintomas".

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a". Esse problema foi corrigido primeiro no Microsoft .NET Framework 1.1 Service Pack 1.

Mais Informações

O código na seção "Passos para reproduzir o comportamento" demonstra esse problema. Este aplicativo contém um dataset que contém uma tabela de dados. A tabela de dados é preenchida com cinco linhas dentro do código. Em seguida, os dados classificados em uma das colunas que é do tipo inteiro na tabela de dados. Depois disso, o código exclui algumas linhas da tabela de dados.

Etapas para reproduzir o comportamento

  1. Inicie o Visual Studio NET..
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project . A caixa de diálogo New Project é exibida.
  3. Em Project Types , clique em projetos translation from VPE for Csharp Visual .
  4. Em modelos , clique em Windows Application e, em seguida, clique em OK . Por padrão, um formulário que é denominado Form1 é criado.
  5. Na janela Solution Explorer , clique com o botão direito no arquivo Form1.cs e, em seguida, clique em View Code .
  6. Replace the existing code with the following code:
    using System;
    using System.Data;
    using System.Windows.Forms;
    
    class TestForm : Form 
    {
    	public TestForm()
    	{
    		InitializeComponent();
    	}
    
    	private void InitializeComponent()
    	{
    		DataSet ds = new DataSet();
    		DataTable dt = ds.Tables.Add("Customers");
    		DataColumn c = dt.Columns.Add("Id", typeof(int));
    		dt.Columns.Add("Name", typeof(string));
    		dt.Columns.Add("Related", typeof(string));
    		DataRow dr= dt.NewRow();
    		DataRow dr1= dt.NewRow();
    		DataRow dr2= dt.NewRow();
    		DataRow dr3= dt.NewRow();
    		DataRow dr4= dt.NewRow();
    		//
    		dr["Id"]=1;
    		dr["Name"]="A";
    		dr["Related"]="";
    		dt.Rows.Add(dr);
    		//
    		dr1["Id"]=2;
    		dr1["Name"]="B";
    		dr1["Related"]="A";
    		dt.Rows.Add(dr1);
    		//
    		dr2["Id"]=3;
    		dr2["Name"]="C";
    		dr2["Related"]="";
    		dt.Rows.Add(dr2);
    		//
    		dr3["Id"]=4;
    		dr3["Name"]="D";
    		dr3["Related"]="A";
    		dt.Rows.Add(dr3);
    		//
    		dr4["Id"]=5;
    		dr4["Name"]="E";
    		dr4["Related"]="";
    		dt.Rows.Add(dr4);
    		//	
    		DataView dv = new DataView(ds.Tables["Customers"]);
    		dv.Sort = "Id ASC";
    		//
    		Bind(dv);
    		//Create another view with the rowFilter property that is set 
      //to the name value of the row that will be deleted.
    		DataView dv1 = new DataView(ds.Tables["Customers"]);
    		dv1.RowFilter = String.Format("Related = '{0}'", dv[0]["Name"]);
    		for (int i = 0; i < dv1.Count; i++) 
    		{
    			dv1[i].Delete();
    		}
    
    		dv[0].Delete();
    
    		for (int i = 0; i < dv.Count; i++) 
    		{
    			dv[i][0] = i + 1;
    		} 
    	}
    
    	public void Bind(DataView dv)
    	{
    		Form frm = this;
    		DataGrid dataGrid = new DataGrid();
    		dataGrid.Dock = DockStyle.Fill;
    		dataGrid.Size = frm.ClientSize;
    		frm.Controls.Add(dataGrid); 
    		dataGrid.DataSource = dv;
    	}
    
    	public static void Main()
    	{
    		try 
    		{
    			Application.Run(new TestForm());
    		} 
    		catch (Exception exc) 
    		{
    			MessageBox.Show(exc.ToString());
    		} 
    	}
    }
  7. No menu Build , clique em Build Solution .
  8. No menu Debug , clique em Iniciar . Você percebe o comportamento mencionado na seção "Sintomas".
Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão que é usada para descrever as atualizações de software
Para obter mais informações, visite o seguinte site da Web Microsoft Developer Network (MSDN):
Classificando e filtrando dados usando um DataView
http://msdn2.microsoft.com/en-us/library/13wb36xf(vs.71).aspx

Propriedades

ID do artigo: 828099 - Última revisão: segunda-feira, 21 de maio de 2007 - Revisão: 1.3
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 1.1
Palavras-chave: 
kbmt kbhotfixserver kbqfe kbbug kbnetframe110sp1fix kbdatabinding kbwindowsforms kbtable kbdll kbcontrol kbqfe kbnetframe110presp1fix kbfix KB828099 KbMtpt
Tradução automática
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: 828099

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com