我有一个数据表,我从Access数据库中填充了表名,“代码”和3列,“CodeNum”,“TableName”和“Desc”。在我的Winforms C#应用程序中,我想用这个数据表填充ListView并让它以相同的格式显示列(带列名)。我尝试了很多代码组合,但无法使其工作。下面的代码显示了第1列中的CodeNum和TableName数据,而不是DESC数据,也没有显示列名(CodeNum)。任何帮助非常感谢。真的不需要, “DataRowState.Deleted”if if语句,但在注释掉时工作方式相同。
Listview应该有3列,每列中都列有数据。
谢谢。
//Get data from Access database and populate datatable "dt"
OleDbConnection Conn = new OleDbConnection();
string conn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=M:\gendoc\Codes.mdb;Persist Security Info=False;";
ListViewItem LItem1 = new ListViewItem();
Conn.ConnectionString = conn;
Conn.Open();
DataTable dt = new DataTable();
DataSet ds = new DataSet();
ds.Tables.Add(dt);
OleDbDataAdapter da = new OleDbDataAdapter("select * from Codes order by CodeNum", Conn);
da.Fill(dt);
Conn.Close();
// Clear the ListView control
listView1.Items.Clear();
int ColCount = dt.Columns.Count;
//Add columns
for (int k = 0; k < ColCount; k++)
{
listView1.Columns.Add(dt.Columns[k].ColumnName);
}
// Display items in the ListView control
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow drow = dt.Rows[i];
// Only row that have not been deleted
if (drow.RowState != DataRowState.Deleted)
{
// Define the list items
ListViewItem lvi = new ListViewItem(drow[0].ToString());
for (int j = 1; j < ColCount; j++)
{
string g = drow[j].ToString();
lvi.SubItems.Add(drow[j].ToString());
}
// Add the list items to the ListView
listView1.Items.Add(lvi);
}
}
答案 0 :(得分:0)
右键单击Listview,属性,查看,更改详细信息选项