Düzeltme: Veri doğru bir .NET Framework 1. 1'bir Windows uygulamasındaki DataGrid denetiminde bulunan sıralanmıyor

Makale çevirileri Makale çevirileri
Makale numarası: 828099 - Bu makalenin geçerli olduğu ürünleri görün.
Duyuru
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Microsoft Visual Studio. NET'i kullanarak oluşturulan bir Windows uygulaması bir DataGrid denetimi ekleyin ve sonra DataGrid denetiminin DataSource özelliğini ayarlayın, veri kaynağından bir veri kaydı silinen veriler doğru sıralanmıyor olduğunu fark edebilirsiniz.

Çözüm

Yazılım güncelleştirmesi bilgileri

Bu sorunu gidermek için <a0></a0>, Microsoft .NET Framework 1.1 için en son hizmet paketini edinin. En son hizmet paketini karşıdan yüklemek için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://www.microsoft.com/downloads/details.aspx?FamilyId=A8F5654F-088E-40B2-BBDB-A83353618B38

Pratik Çözüm

Bu soruna geçici bir çözüm için aşağıdaki adımları izleyin:
  1. BIND yöntemini Form1.cs dosyasında bulun:
    frm.Controls.Add(dataGrid); 
    		dataGrid.DataSource = dv;
  2. Aşağıdaki kodu 1. adımda bulduğunuz kodunu değiştir:
    dataGrid.DataSource = dv;
    		frm.Controls.Add(dataGrid);
  3. Uygulama yeniden ve uygulamayı çalıştırın.

    "Belirtiler" bölümünde anlatılan davranışı göreceksiniz değil.

Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır. Bu sorun ilk olarak Microsoft .NET Framework 1.1 Service Pack 1'de giderilmiştir.

Daha fazla bilgi

Kod "davranışı yeniden oluşturma adımları" bölümünde, bu sorunu gösterir. Bu uygulama, bir veri tablosu içeren bir veri kümesi içerir. Veri tablosu kodu içinde beş satır ile doldurulur. Sonra verileri bir veri tablosundaki Tamsayı türü olan sütunlar sıralanır. Bundan sonra kodu veri tablosundaki bazı satırlar siler.

Davranışı Yeniden Oluşturma Adımları

  1. Visual Studio .NET'i başlatın.
  2. Dosya menüsünde Yeni ' nin üzerine gelin ve sonra Project ' i tıklatın. <a0>New Project</a0> iletişim kutusu görüntülenir.
  3. Project Types altında Visual C# Projects ' ı tıklatın.
  4. Şablonlar altında Windows uygulama ' yı tıklatın ve sonra Tamam ' ı tıklatın. Varsayılan olarak, Form1 adlı bir form oluşturulur.
  5. Solution Explorer (Çözüm Gezgini) penceresinde, Form1.cs dosyasını sağ tıklatın ve Kod Görüntüle</a1>'ı tıklatın.
  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. Yapı) menüsünde, Build Solution ' ı tıklatın.
  8. Hata Ayıkla) menüsünde, Başlat ' ı tıklatın. "Belirtiler" bölümünde açıklanan davranışla, dikkat edin.
Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
824684Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması
Daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
Sıralama ve DataView'nı kullanarak verileri süzme
http://msdn2.microsoft.com/en-us/library/13wb36xf(vs.71).aspx

Özellikler

Makale numarası: 828099 - Last Review: 21 Mayıs 2007 Pazartesi - Gözden geçirme: 1.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft .NET Framework 1.1
Anahtar Kelimeler: 
kbmt kbhotfixserver kbqfe kbbug kbnetframe110sp1fix kbdatabinding kbwindowsforms kbtable kbdll kbcontrol kbnetframe110presp1fix kbfix KB828099 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:828099

Geri Bildirim Ver

 

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