Oprava: Data nejsou správně seřazena na ovládací prvek DataGrid v aplikaci Windows v rozhraní .NET Framework 1.1

Překlady článku Překlady článku
ID článku: 828099 - Produkty, které se vztahují k tomuto článku.
Poznámka
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Přidat ovládací prvek DataGrid aplikace systému Windows, který je vytvořen pomocí Microsoft Visual Studio .NET a pak nastavte vlastnosti DataSource ovládacího prvku DataGrid, můžete si všimnout, že data nejsou správně seřazena po odstranění záznamu dat ze zdroje dat.

Řešení

Informace o aktualizaci softwaru

Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro rozhraní Microsoft .NET Framework 1.1. Chcete-li stáhnout nejnovější aktualizace service pack, naleznete na následujícím webu:
http://www.microsoft.com/downloads/details.aspx?FamilyId=A8F5654F-088E-40B2-BBDB-A83353618B38

Jak potíže obejít

Chcete-li tento problém vyřešit, postupujte takto:
  1. Vyhledejte metodu BIND v souboru Form1.cs:
    frm.Controls.Add(dataGrid); 
    		dataGrid.DataSource = dv;
  2. Nahradit kód umístěný v kroku 1 s následujícím kódem:
    dataGrid.DataSource = dv;
    		frm.Controls.Add(dataGrid);
  3. Aplikaci znovu sestavit a spustit aplikaci.

    Bude zjistíte chování uvedena v "příznaky".

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt. Tento problém byl poprvé opraven v aktualizaci Microsoft .NET Framework 1.1 Service Pack 1.

Další informace

Kód v části "Kroky pro reprodukci chování" znázorňuje tento problém. Tato aplikace obsahuje jeden datové sady obsahuje jednu tabulku dat. Tabulka dat je vyplněno pět řádků uvnitř kód. Data je potom seřazen na sloupce, které je v tabulce dat typu Integer. Po, kód odstraní některé řádky z tabulky dat.

Kroky pro reprodukci tohoto chování

  1. Spusťte aplikaci Visual Studio .NET.
  2. V nabídce soubor přejděte na příkaz Nový a klepněte na příkaz projekt. Zobrazí se dialogové okno Nový projekt.
  3. V části Typy projektu klepněte na položku Visual C# projekty.
  4. V části šablony klepněte Aplikace Windows a potom klepněte na tlačítko OK. Ve výchozím nastavení je vytvořen formulář s názvem Form1.
  5. V okně Solution Explorer klepněte pravým tlačítkem myši na soubor Form1.cs a potom klepněte na tlačítko Zobrazit kód.
  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. V nabídce vytvořit klepněte na tlačítko Sestavit řešení.
  8. V nabídce Debug klepněte na tlačítko Start. Všimněte si chování uvedena v "příznaky".
Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
824684Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft
Další informace naleznete na následujících webech služby MSDN (Microsoft Developer Network):
Řazení a filtrování dat pomocí DataView
http://msdn2.microsoft.com/en-us/library/13wb36xf(vs.71).aspx

Vlastnosti

ID článku: 828099 - Poslední aktualizace: 21. května 2007 - Revize: 1.3
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft .NET Framework 1.1
Klíčová slova: 
kbmt kbhotfixserver kbqfe kbbug kbnetframe110sp1fix kbdatabinding kbwindowsforms kbtable kbdll kbcontrol kbqfe kbnetframe110presp1fix kbfix KB828099 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:828099

Dejte nám zpětnou vazbu

 

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