我从mysql数据库获取数据并将此数据添加到ListView。 当我这样做时,数据开始添加到第二行。第一行是空的。但是它正确地加载了所有数据。只有数据库中的第一行被添加到listview的第二行。
private void CreateSessionList() {
SessionList.View = View.Details;
SessionList.Font = Listctrlfont;
connection.Open();
cmd = connection.CreateCommand();
cmd.CommandText = "SELECT * FROM sessiontbl";
MySqlDataAdapter ada = new MySqlDataAdapter(cmd);
DataTable dt = new DataTable();
ada.Fill(dt);
for (int i = 0; i < dt.Rows.Count; i++) {
DataRow dr = dt.Rows[i];
ListViewItem listitem = new ListViewItem(dr["SessionID"].ToString());
listitem.Font = Listitemfont;
listitem.SubItems.Add(dr["InstID"].ToString());
listitem.SubItems.Add(dr["Trainee"].ToString());
listitem.SubItems.Add(dr["SessDt"].ToString());
listitem.SubItems.Add(dr["ModelID"].ToString());
listitem.SubItems.Add(dr["ModelName"].ToString());
SessionList.Items.Add(listitem);
}
}
我做错了什么?
答案 0 :(得分:1)
您可能在设计器的列表视图中有一个占位符项。 在开始填充之前调用清除项目,以确保以干净的石板开始。
这也意味着您可以随时从dB重新加载。
SessionList.Items.Clear();
答案 1 :(得分:0)
检查数据表的第一行是否包含列名。在这种情况下,您必须从dt.Rows集合中的i = 1开始。