none
Datagridview de arama ve seçme hakkında yardıma ihtiyacım var. RRS feed

  • Soru

  • Daragridview'e alınmış anlık saat bilgileri (örn: 13:07:37) ve sıcaklık değerleri var. 2 sütun yani. Ben kullanıcının girdiği 2 farklı saat arasındaki sıcaklıkların minimum, maksimum ve ortalama değerlerini bulmak istiyorum. Böyle bir şey nasıl yapılabilir?
    19 Mayıs 2016 Perşembe 10:10

Yanıtlar

  • datagridin içersindeki bilgileri önce bir datatable oluşturup içine atabilir daha sonra datatableyi filter ederek başka bir datagride veya formdaki datagride verileri çekebilirsiniz örneğin aşağıdaki gibi

     DataTable dt = new DataTable();
                foreach (DataGridViewColumn col in dataGridView1.Columns)
                {
                    dt.Columns.Add(col.HeaderText);
                }
    
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    DataRow dRow = dt.NewRow();
                    foreach (DataGridViewCell cell in row.Cells)
                    {
                        dRow[cell.ColumnIndex] = cell.Value;
                    }
                    dt.Rows.Add(dRow);
                }
                dt.DefaultView.RowFilter = string.Format("tarih1>'{0}' AND tarih2<'{0}'", dateTimePicker1.Value, dateTimePicker2.Value);
                dataGridView2.DataSource = dt;

    19 Mayıs 2016 Perşembe 20:59

Tüm Yanıtlar

  • gridviewin veri kaynağında linq sorgusu yapabilirsin. tabi senin yapıyı görmeden fazla bişey söylemek zor.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    19 Mayıs 2016 Perşembe 10:19
    Moderatör
  • Verileri seriporttan alıyorum zamanlarıyla birlikte datagride yazdırıyorum. Bunu excele kaydediyorum. Okul projesidir.

    19 Mayıs 2016 Perşembe 10:24
  • "datagride yazdırıyorum" geldikçe satır mı ekliyorsun?

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    19 Mayıs 2016 Perşembe 10:31
    Moderatör
  •  private void timer1_Tick(object sender, EventArgs e)
            {
                i++;
                serialPort1.Write("a");
                i = dataGridView1.Rows.Add();
                label8.Text = DateTime.Now.ToLongTimeString();
                dataGridView1.Rows[i].Cells[0].Value = label8.Text;
                
               
                dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.RowCount - 1;
                
    
    private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
                
                 try
                 {
                    gelen = serialPort1.ReadLine();
                     this.Invoke(new EventHandler(Verileri_Isle));
                 }
                 catch (Exception hata)
                 {
                     MessageBox.Show("Hata:" + hata.Message);
                 }  
    
            }
    
            private void Verileri_Isle(object s, EventArgs e)
            {
                dataGridView1.Rows[j].Cells[1].Value =gelen.ToString();
                j++;
            }
    Seriporta bilgiyi 1 saniyede bir gönderiyorum. Bu sırada zaman çalışmaya başlıyor ve her 1 saniyede yeni satır oluşturup zamanı kaydediyor. Daha sonra verileri alma komutunu verip, verileri sırasıyla ilk satırdan itibaren zamanların karşısına yazdırıyorum. 
    19 Mayıs 2016 Perşembe 10:38
  • datagridin içersindeki bilgileri önce bir datatable oluşturup içine atabilir daha sonra datatableyi filter ederek başka bir datagride veya formdaki datagride verileri çekebilirsiniz örneğin aşağıdaki gibi

     DataTable dt = new DataTable();
                foreach (DataGridViewColumn col in dataGridView1.Columns)
                {
                    dt.Columns.Add(col.HeaderText);
                }
    
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    DataRow dRow = dt.NewRow();
                    foreach (DataGridViewCell cell in row.Cells)
                    {
                        dRow[cell.ColumnIndex] = cell.Value;
                    }
                    dt.Rows.Add(dRow);
                }
                dt.DefaultView.RowFilter = string.Format("tarih1>'{0}' AND tarih2<'{0}'", dateTimePicker1.Value, dateTimePicker2.Value);
                dataGridView2.DataSource = dt;

    19 Mayıs 2016 Perşembe 20:59