public static void FillListView(this ListView list, DataTable dt)
{
list.BeginUpdate();
list.Items.Clear();
int rowCount, columnCount;
rowCount = dt.Rows.Count;
columnCount = dt.Columns.Count;
for (int i = 0; i < rowCount; i++)
{
ListViewItem item = new ListViewItem();
item.Text = dt.Rows[i][0].ToString(); for (int j = 0; j < columnCount; j++)
{
ListViewItem.ListViewSubItem subItem = new ListViewItem.ListViewSubItem();
subItem.Text = dt.Rows[i][j].ToString();
item.SubItems.Add(subItem);
}
list.Items.Add(item);
}
list.EndUpdate();
}//测试数据DataTable
private DataTable GetDataTable()
{
// Create a new DataTable.
System.Data.DataTable table = new DataTable("ParentTable");
// Declare variables for DataColumn and DataRow objects.
DataColumn column;
DataRow row; // Create new DataColumn, set DataType,
// ColumnName and add to DataTable.
column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "id";
column.ReadOnly = true;
column.Unique = true;
// Add the Column to the DataColumnCollection.
table.Columns.Add(column); // Create second column.
column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = "ParentItem";
column.AutoIncrement = false;
column.Caption = "ParentItem";
column.ReadOnly = false;
column.Unique = false;
// Add the column to the table.
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Third";
column.ReadOnly = true;
//column.Unique = true;
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Four";
column.ReadOnly = true;
column.Unique = true;
table.Columns.Add(column); // Make the ID column the primary key column.
DataColumn[] PrimaryKeyColumns = new DataColumn[1];
PrimaryKeyColumns[0] = table.Columns["id"];
table.PrimaryKey = PrimaryKeyColumns; // Instantiate the DataSet variable.
DataSet dataSet = new DataSet();
// Add the new DataTable to the DataSet.
dataSet.Tables.Add(table); // Create three new DataRow objects and add
// them to the DataTable
for (int i = 0; i <= 2; i++)
{
row = table.NewRow();
row["id"] = i;
row["ParentItem"] = "ParentItem " + i;
row["Third"] = "Third" + i;
row["Four"] = "Four" + i;
//row["Fri"] = "Fri" + i;
table.Rows.Add(row);
} return table;
}为什么显示的数据是下面数据的前四列,而不是后四列的内容?
0 0 ParentItem0 Third0 Four0
1 1 ParentItem1 Third1 Four1
2 2 ParentItem2 Third2 Four2
解决方案 »
- Unity3D 游戏制作
- C# 双击DataGridView选中行,弹出窗体form,并将该行的数据绑定到了form的TextBox等上面,form中有前一记录,后一记录按钮,如何改变值
- 后台怎么获取前台input绑定的值
- C#里有没有控件可以上面显示图标下面显示文字?
- 窗体和xml的问题,急(C#,vs2005)
- Socket发送数据的问题!
- 求一个NHiberNate基础功能程序包下载
- net内存释放问题,请教!!
- 怎么读取注册表项的默认键值,近来就有分
- 请问vb6.0 vc6.0 vs.net2003 能不能装到linux操作系统上运行啊? jbuildx tomcat5.0 jdk1.4能不能装到linux操作系统上运行呢?为什么呢?谢
- ListView的SelectedIndexChanged事件
- datagridview控件的问题
{
// Create a new DataTable.
System.Data.DataTable table = new DataTable("ParentTable");
// Declare variables for DataColumn and DataRow objects.
DataColumn column;
DataRow row; // Create new DataColumn, set DataType,
// ColumnName and add to DataTable.
column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "id";
column.ReadOnly = true;
column.Unique = true;
// Add the Column to the DataColumnCollection.
table.Columns.Add(column); // Create second column.
column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = "ParentItem";
column.AutoIncrement = false;
column.Caption = "ParentItem";
column.ReadOnly = false;
column.Unique = false;
// Add the column to the table.
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Third";
column.ReadOnly = true;
//column.Unique = true;
table.Columns.Add(column); column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "Four";
column.ReadOnly = true;
column.Unique = true;
table.Columns.Add(column); // Make the ID column the primary key column.
DataColumn[] PrimaryKeyColumns = new DataColumn[1];
PrimaryKeyColumns[0] = table.Columns["id"];
table.PrimaryKey = PrimaryKeyColumns;
// Instantiate the DataSet variable.
DataSet dataSet = new DataSet();
// Add the new DataTable to the DataSet.
dataSet.Tables.Add(table); // Create three new DataRow objects and add
// them to the DataTable
for (int i = 0; i <= 2; i++)
{
row = table.NewRow();
row["id"] = i;
row["ParentItem"] = "ParentItem " + i;
row["Third"] = "Third" + i;
row["Four"] = "Four" + i;
//row["Fri"] = "Fri" + i;
table.Rows.Add(row);
} return table;
}
看看设置主键是否可以直接在column id那直接设置
for (int i = 0; i < rowCount; i++)
{
ListViewItem item = new ListViewItem();
item.Text = dt.Rows[i][0].ToString();
//j不应该从0开始循环,应该从1开始
//因为dt.Rows[i][0]这个值已经被item.Text显示了
//再循环一遍,就会出现第一次出现两次的结果
//把 int j=0 修改成 int j=1 应该就行了。
for (int j = 0; j < columnCount; j++)
{
ListViewItem.ListViewSubItem subItem = new ListViewItem.ListViewSubItem();
subItem.Text = dt.Rows[i][j].ToString();
item.SubItems.Add(subItem);
}
list.Items.Add(item);
}