C# datagridview sütunları hakkında

Bu konuyu okuyanlar

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
arkadaşlar aşağıdaki kodla datagridviewi dolduruyorum. daha sonra farklı bir formdan insert yapıp hemen arkasından tekrar datagridi doldurduğumda kalan ve tutar sütunları yer değiştiriyor bunu nasıl önlerim?

kalan sütunu manuel yaratılıyor. form loa olurkan ödenen - kalan - tutar şeklinde sütunlar diziliyor, insertten sonra ödenen - tutar - kalan dizilişine dönüyor :bored:

Kod:
public void DoldurGrid()
        {
            SqlCommand cmd = new SqlCommand("Select * from liste order by tarih", con);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            da.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
            
            dataGridView1.RowsDefaultCellStyle.SelectionBackColor = Color.LightGoldenrodYellow;
            dataGridView1.RowsDefaultCellStyle.SelectionForeColor = Color.Black;

            ds.Tables[0].Columns.Add(new DataColumn("Kalan", typeof(string)));
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                decimal tutar = Int32.Parse(dr[8].ToString());
                decimal odenen = Int32.Parse(dr[7].ToString());
                decimal kalan = (tutar - odenen);

                dr["Kalan"] = kalan.ToString("C");
            }
            foreach (DataGridViewRow gvrow in dataGridView1.Rows)
            {
                gvrow.Height = 35;
            }                    
        }
 

SiberWorm

Doçent
Katılım
3 Aralık 2009
Mesajlar
508
Reaksiyon puanı
5
Puanları
0
Belki saçma bir yöntem olabilir ama insert sorgusu çalıştıkdan sonra o sütunleri silip yeni sütun oluşturabilirsin.
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,609
Reaksiyon puanı
144
Puanları
63
on 2 kolon yer değiştireceğine göre DisplayIndex değerlerini yer değiştirdiğin zaman düzelmesi lazım. Yani Datagridview 'ı doldurduktan sonra ve kalan kolonunu ekledikten sonra aşağıdaki kodu yazacaksın.

PHP:
int gecici = dataGridView1.Columns[dataGridView1.ColumnCount - 2].DisplayIndex;
dataGridView1.Columns[dataGridView1.ColumnCount - 2].DisplayIndex = dataGridView1.Columns[dataGridView1.ColumnCount - 1].DisplayIndex;
dataGridView1.Columns[dataGridView1.ColumnCount - 1].DisplayIndex = gecici;
 

UgurOnline

Asistan
Katılım
11 Aralık 2008
Mesajlar
159
Reaksiyon puanı
1
Puanları
0
bu sefer dahada sapıttı. hatayı anladım sanırım. load kısmında 7.sütun ödenen, 8.sütun ise tutar. hemen ardından tam arasına kalan sütunu ekleniyor bu sefer tutar 9. sütun durumuna geçiyor. aşağıdaki kodda sütun numaraları verilen yere direk sütun ismini yazdırsak en mantıklısı olucak sanırım. bunu nasıl yaparız?

Kod:
decimal tutar = Int32.Parse(dr[8].ToString());
decimal odenen = Int32.Parse(dr[7].ToString());


---------- Post added at 19:50 ---------- Previous post was at 19:40 ----------

çözdüm ama ne kadar sağlıklı bi yönemdir bilmiyorum

ilk olarak sql'de kalan isminde sütun oluşturdum

aşağıdaki kodu sildim
Kod:
ds.Tables[0].Columns.Add(new DataColumn("Kalan", typeof(string)));
 
Üst