下面是我从数据库中获取数据行 填充listView1中的项注意 ListViewItem i = new ListViewItem(r[0].ToString(),0);这样的话 数据库中第一列会重复,等于有2个第一列的,我用了判定解决了问题
foreach (object o in r.ItemArray)
{
if (b == false)
{
b = true;
continue;
}请问有没的更好的办法解决这个问题呢?就像填充列一样
foreach (DataColumn d in ds.Tables["t"].Columns)
{
listView1.Columns.Add(d.ColumnName, 100, HorizontalAlignment.Left);
}下面是详细的代码 请高手指点一下string strConn = " Initial Catalog=SYXT;Data Source = LEIKE;User ID=sa;Password=sa";
SqlConnection conn = new SqlConnection(strConn);
SqlDataAdapter da = new SqlDataAdapter("select CTID as 餐台编号,ZT as 状态 from CanTaiID where ZT = 1", conn);
DataSet ds = new DataSet();
da.Fill(ds, "t");
bool b;
foreach (DataRow r in ds.Tables["t"].Rows)
{
ListViewItem i = new ListViewItem(r[0].ToString(),0);
b = false;
foreach (object o in r.ItemArray)
{
if (b == false)
{
b = true;
continue;
}
i.SubItems.Add(o.ToString());
}
listView1.Items.Add(i);
}
foreach (object o in r.ItemArray)
{
if (b == false)
{
b = true;
continue;
}请问有没的更好的办法解决这个问题呢?就像填充列一样
foreach (DataColumn d in ds.Tables["t"].Columns)
{
listView1.Columns.Add(d.ColumnName, 100, HorizontalAlignment.Left);
}下面是详细的代码 请高手指点一下string strConn = " Initial Catalog=SYXT;Data Source = LEIKE;User ID=sa;Password=sa";
SqlConnection conn = new SqlConnection(strConn);
SqlDataAdapter da = new SqlDataAdapter("select CTID as 餐台编号,ZT as 状态 from CanTaiID where ZT = 1", conn);
DataSet ds = new DataSet();
da.Fill(ds, "t");
bool b;
foreach (DataRow r in ds.Tables["t"].Rows)
{
ListViewItem i = new ListViewItem(r[0].ToString(),0);
b = false;
foreach (object o in r.ItemArray)
{
if (b == false)
{
b = true;
continue;
}
i.SubItems.Add(o.ToString());
}
listView1.Items.Add(i);
}
{
string [] ItemValue = new string [ ds.Tables["t"].Columns.Count];
for (int j = 0; j < ds.Tables["t"].Columns.Count; j++)
{
// 创建ListViewItem值
ItemValue[j] = ds.Tables["t"].Rows[i][j].ToString();
}
ListViewItem objItem = new ListViewItem( ItemValue);
listView1.Items.Add( objItem);
}
foreach (DataRow r in ds.Tables["t"].Rows)
{
ListViewItem i = null; foreach (object o in r.ItemArray)
{
if (i == null)
{
i = new ListViewItem(r[0].ToString(),0);;
}
else
{ i.SubItems.Add(o.ToString());
}
}
listView1.Items.Add(i);
}
先定义两个字段:
public int dr_count;
public DataTable dt_tp;然后在主函数中调用下面两个方法:
this.dt_tp = this.get_datatable();
this.listview_show(this.dr_count);/// <summary>
/// 获取数据
/// </summary>
private DataTable get_datatable()
{
string strConn = " Initial Catalog=SYXT;Data Source = LEIKE;User
ID=sa;Password=sa";
SqlConnection conn = new SqlConnection(strConn);
SqlDataAdapter da = new SqlDataAdapter("select CTID as 餐台编号,ZT as 状态 from CanTaiID where ZT = 1", conn);
DataSet ds = new DataSet();
da.Fill(ds, "t");
this.dr_count = ds.Tables["t"].Rows.Count; return ds.Tables["t"];}/// <summary>
/// 填充ListView
/// </summary>
private void listview_show(int count)
{
this.listView1.View = View.Details;
this.listView1.GridLines = true;
this.listView1.Columns.Add("第一列",80,HorizontalAlignment.Center);
this.listView1.Columns.Add("第二列",80,HorizontalAlignment.Center);
this.listView1.Columns.Add("第三列",80,HorizontalAlignment.Center);
this.listView1.Columns.Add("第四列",80,HorizontalAlignment.Center);
foreach(DataRow dr in this.dt_tp.Rows)
{
ListViewItem lstItem = new ListViewItem(new string[]{ dr[0].ToString(),
dr[1].ToString(),
dr[2].ToString(),
dr[3].ToString()});
this.listView1.Items.Add(lstItem);
}
}