none
DataGrid içerisinde ki sütunların yerini değiştirme. RRS feed

  • Soru

  • Başlıkta da belirttiğim gibi dataGridView içerisinde ki satırların yerlerini değiştirmek istiyorum click eventi ile yalnız hata vermekte 

    private Rectangle dragBoxFromMouseDown;
            private int rowIndexFromMouseDown;
            private int rowIndexOfItemUnderMouseToDrop;
            DataGridViewRow rw;
            private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
            {
                if (dataGridView1.SelectedRows.Count == 1)
                {
                    if (e.Button == MouseButtons.Left)
                    {
                        rw = dataGridView1.SelectedRows[0];
                        rowIndexFromMouseDown = dataGridView1.SelectedRows[0].Index;
                        dataGridView1.DoDragDrop(rw, DragDropEffects.Move);
                    }
                }
            }
            private void dataGridView1_DragEnter(object sender, DragEventArgs e)
            {
                if (dataGridView1.SelectedRows.Count > 0)
                {
                    e.Effect = DragDropEffects.Move;
                }
            }
            private void dataGridView1_DragDrop(object sender, DragEventArgs e)
            {
                int rowIndexOfItemUnderMouseToDrop;
                Point clientPoint = dataGridView1.PointToClient(new Point(e.X, e.Y));
                rowIndexOfItemUnderMouseToDrop = dataGridView1.HitTest(clientPoint.X, clientPoint.Y).RowIndex;

                if (e.Effect == DragDropEffects.Move)
                {
                    dataGridView1.Rows.RemoveAt(rowIndexFromMouseDown);
                    dataGridView1.Rows.Insert(rowIndexOfItemUnderMouseToDrop, rw);
                }
            }

    Son satırda 'Denetim veriye bağlı olduğunda DataGridView'in satırlar koleksiyonuna satırlar program aracılığıyla eklenemez.'

    hatası almaktayım araştırdım Datagrid içinde DataSource belirtip hem de satır eklemeye kalkamazsınız yazıyor.

    Yardımcı olabilir misiniz

    2 Ocak 2018 Salı 08:00

Yanıtlar

  • dataGridView1'e veri doldurmak için DataSource özelliğini kullanmayın.

    private void VeriDoldur()
    {
        using (SqlConnection sqlConnection = new SqlConnection("Baglantı metnini buraya yazın.!."))
        {
            using (SqlCommand sqlCommand = new SqlCommand("Select ifadesini buraya yazın.!.", sqlConnection))
            {
                sqlConnection.Open();
                SqlDataReader dataReader = sqlCommand.ExecuteReader();
                while (dataReader.Read())
                {
                    // dataGridView1'in kolon sayısı kadar dataReader[kolonsayisi-1] ekleyin.!.
                    dataGridView1.Rows.Add(dataReader[0], dataReader[1], dataReader[2]); 
                }
                dataReader.Close();
                sqlConnection.Close();
            }
        }
    }

    Bu metodu kullanın.!.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen Hamid semi 2 Ocak 2018 Salı 10:27
    • Yanıt İşaretini Geri Alan Hamid semi 2 Ocak 2018 Salı 10:27
    • Yanıt Olarak İşaretleyen Hamid semi 2 Ocak 2018 Salı 14:59
    2 Ocak 2018 Salı 09:05
  • Kod içeriğinde, açıklama satırında da belirttiğim gibi, önce dataGridView1 kontrolünün Columns özelliğine 23 Adet (ihtiyacınız kadar) kolon eklemelisiniz.!.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen Hamid semi 2 Ocak 2018 Salı 14:59
    2 Ocak 2018 Salı 13:43

Tüm Yanıtlar

  • dataGridView1'e veri doldurmak için DataSource özelliğini kullanmayın.

    private void VeriDoldur()
    {
        using (SqlConnection sqlConnection = new SqlConnection("Baglantı metnini buraya yazın.!."))
        {
            using (SqlCommand sqlCommand = new SqlCommand("Select ifadesini buraya yazın.!.", sqlConnection))
            {
                sqlConnection.Open();
                SqlDataReader dataReader = sqlCommand.ExecuteReader();
                while (dataReader.Read())
                {
                    // dataGridView1'in kolon sayısı kadar dataReader[kolonsayisi-1] ekleyin.!.
                    dataGridView1.Rows.Add(dataReader[0], dataReader[1], dataReader[2]); 
                }
                dataReader.Close();
                sqlConnection.Close();
            }
        }
    }

    Bu metodu kullanın.!.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen Hamid semi 2 Ocak 2018 Salı 10:27
    • Yanıt İşaretini Geri Alan Hamid semi 2 Ocak 2018 Salı 10:27
    • Yanıt Olarak İşaretleyen Hamid semi 2 Ocak 2018 Salı 14:59
    2 Ocak 2018 Salı 09:05
  • Deneyip geri dönüş yapacağım teşekkürler..
    2 Ocak 2018 Salı 10:27
  • cnn.Open();
                            SqlCommand verial = new SqlCommand("SELECT cari_kod, cari_unvan1, ISNULL(cari_unvan2, '') AS cari_unvan2, ISNULL(adr_cadde, '') AS adr_cadde, ISNULL(adr_sokak, '') AS adr_sokak, ISNULL(adr_uzaklik_kodu, '') AS adr_uzaklik_kodu, ISNULL(cari_vdaire_adi, '') AS cari_vdaire_adi, ISNULL(cari_vdaire_no, '') AS cari_vdaire_no, ISNULL(cari_temsilci_kodu, '') AS cari_temsilci_kodu, ISNULL(adr_posta_kodu, '') AS  adr_posta_kodu, adr_il, adr_ilce, adr_tel_no1, adr_tel_no2, adr_ziyaretperyodu, adr_ziyaretgunu, adr_ziygunu2_1, adr_ziygunu2_2, adr_ziygunu2_3, adr_ziygunu2_4, adr_ziygunu2_5, adr_ziygunu2_6, adr_ziygunu2_7 from CARI_HESAPLAR ch INNER JOIN CARI_HESAP_ADRESLERI cha on cha.adr_cari_kod = ch.cari_kod where (adr_ziyaretperyodu IN (1, 2, 9, 10) ) and (cari_temsilci_kodu='" + comboBox1.Text + "') and adr_ziygunu2_6 = '0' and adr_ziyaretgunu = '6' or (adr_ziyaretperyodu IN (1, 2, 9, 10) ) and (cari_temsilci_kodu='" + comboBox1.Text + "') and adr_ziygunu2_6 = '1' and adr_ziyaretgunu = '0' or adr_ziyaretperyodu = '1' and (cari_temsilci_kodu='" + comboBox1.Text + "') ORDER BY adr_ziyaretperyodu", cnn);
                            SqlDataReader dataReader = verial.ExecuteReader();
                            while (dataReader.Read())
                            {
                                // dataGridView1'in kolon sayısı kadar dataReader[kolonsayisi-1] ekleyin.!.
                                dataGridView1.Rows.Add(dataReader[0], dataReader[1], dataReader[2], dataReader[3], dataReader[4], dataReader[5], dataReader[6], dataReader[7], dataReader[8], dataReader[9], dataReader[10], dataReader[11], dataReader[12], dataReader[13], dataReader[14], dataReader[15], dataReader[16], dataReader[17], dataReader[18], dataReader[19], dataReader[20], dataReader[21], dataReader[22]);
                            }
                            dataReader.Close();

    dediğinizi doğru bir şekilde uygulayamadım sanırım.

    'Sütunu olmayan bir DataGridView denetimine satır eklenemez. Önce sütunlar eklenmelidir'

    hatası almaktayım

    MuratAKSARAY bey

    2 Ocak 2018 Salı 13:26
  • Kod içeriğinde, açıklama satırında da belirttiğim gibi, önce dataGridView1 kontrolünün Columns özelliğine 23 Adet (ihtiyacınız kadar) kolon eklemelisiniz.!.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    • Yanıt Olarak İşaretleyen Hamid semi 2 Ocak 2018 Salı 14:59
    2 Ocak 2018 Salı 13:43
  • Çok teşekkür ediyorum biraz aceleci olduğumdan kaçırmışım o bölümü kusura bakmayın sorunum çözüldü tekrardan çok teşekkürler 

    Murat Bey :)

    2 Ocak 2018 Salı 15:00