Ben pencere şeklinde Datatable görebilmesini ister ListView için şimdi oradaki veriler!C# datatable
şerefe
Ben pencere şeklinde Datatable görebilmesini ister ListView için şimdi oradaki veriler!C# datatable
şerefe
foreach (DataRow row in data.Rows)
{
ListViewItem item = new ListViewItem(row[0].ToString());
for (int i = 1; i < data.Columns.Count; i++)
{
item.SubItems.Add(row[i].ToString());
}
listView_Services.Items.Add(item);
}
Güncelleme: Eğer birden fazla kez yöntemini çağırarak eğer ayrıca, sütunların olup olmadığını görmek için sütunları eklemeden önce sütunlar koleksiyonu temizlemek ya kontrol etmek ya da ihtiyaç zaten eklendi - aksi takdirde, yönteminizi her aradığınızda sütun sayısı artacaktır.
DataTable sample = new DataTable(); //Sample Data
sample.Columns.Add("Subject", typeof(string));
sample.Columns.Add("Location", typeof(string));
sample.Columns.Add("StartTime", typeof(DateTime));
sample.Columns.Add("EndTime", typeof(DateTime));
sample.Columns.Add("StartDate", typeof(DateTime));
sample.Columns.Add("EndDate", typeof(DateTime));
sample.Columns.Add("AllDayEvent", typeof(bool));
sample.Columns.Add("Body", typeof(string));
listViewContacts.Items.Clear();
foreach (DataRow dr in sample.Rows)
{
DataRow row = sample.NewRow();
row["Subject"] = dr.Subject;
row["Location"] = dr.Location;
row["StartTime"] = dr.Start.TimeOfDay.ToString();
row["EndTime"] = dr.End.TimeOfDay.ToString();
row["StartDate"] = dr.Start.Date;
row["EndDate"] = dr.End.Date;
row["AllDayEvent"] = dr.AllDayEvent;
row["Body"] = dr.Body;
sample.Rows.Add(row);
}
sample.AcceptChanges();
foreach (DataRow dr in sample.Rows)
{
ListViewItem lvi = new ListViewItem(dr["Subject"].ToString());
lvi.SubItems.Add(dr["Location"].ToString());
lvi.SubItems.Add(dr["StartTime"].ToString());
lvi.SubItems.Add(dr["EndTime"].ToString());
lvi.SubItems.Add(dr["StartDate"].ToString());
lvi.SubItems.Add(dr["EndDate"].ToString());
lvi.SubItems.Add(dr["AllDayEvent"].ToString());
lvi.SubItems.Add(dr["Body"].ToString());
this.listViewContacts.Items.Add(lvi);
}
Bunun için bir çözüm arıyorum ama başarısız oldum. Bu soruna en iyi şekilde cevap verebilecek bir şey bulamadım, bu yüzden kendi çözümümü kendim yaptım. Bu çözümü daha kısa, daha kolay ve daha anlaşılır bir hale getirebildiğime, çoğumuzun aradığı şeylere en iyi şekilde cevap verebileceğime çok sevindim.
public void ShowCurrentParked()
{
dt3 = new DataTable();
dt3.Clear(); //clear to avoid overlapping data (new DataTable is not enough)
lstViewShowCurrentParked.Items.Clear(); //clear items to accept new or updated data to avoid overlapping/duplicate data
dt3 = pBAL.ShowCurrentParked(); //datasource (class)
for (int j = 0; j < dt3.Rows.Count; j++)
{
lstViewShowCurrentParked.BeginUpdate();
lstViewShowCurrentParked.Items.Add(new ListViewItem(new string[] {dt3.Rows[j][1].ToString(),dt3.Rows[j][2].ToString(),
dt3.Rows[j][3].ToString()}));
}
lstViewShowCurrentParked.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
lstViewShowCurrentParked.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
lstViewShowCurrentParked.EndUpdate();
dt3.Clear(); //clear again to avoid overlapping data (new DataTable is not enough) .. to make datatable really empty
//BeginUpdate and EndUpdate will just lessen the flicker during listview update
}
Verimlilik: 1. hızlı 2. önlemek veri çoğaltma
güzel 3. az titreşim, ama benim ilk satır boş !!! –
Veritabanınızda boş bir veri satırınız olduğu anlamına mı geliyor? – MusiGenesis
Yoksa ilk * sütun * boş mu demek istiyorsun? – MusiGenesis