列表视图函数中的行错误帮助
本文关键字:错误 帮助 视图 函数 列表 | 更新日期: 2023-09-27 17:57:39
这是我正在使用的代码。
foreach (DataRow row in data.Rows)
{
ListViewItem lst = default(ListViewItem);
lst = lvw.Items.Add(row(0)); // My error is on row
for (int i = 1; i <= data.Columns.Count - 1; i++)
{
lst.SubItems.Add(row(i));
}
}
现在,我正在做或试图做的实际上是将数据库项添加到我的listview
中。但是,我似乎无法将我的行放到列表视图中。我得到一个语法错误:
"Rows"是一个"变量",但其用法类似于"方法"。
几天来,我一直在与这种winform作斗争,我的编码在这一点上已经停止了。我试着把括号改了。这是整个功能。我在vb.net中从互联网上得到了它,并运行了它工作的代码。然后,我在vb.net中为我的应用程序配置了同样有效的代码,现在转换为c#后,它不起作用,这是我的问题。我浏览了所有的代码(我是c#的新手),并修复了除行错误之外的大部分代码,使其适用于我的应用程序
private void ShowDataInLvw(DataTable data, ListView lvw)
{
lvw.View = View.Details;
lvw.GridLines = true;
lvw.Columns.Clear();
lvw.Items.Clear();
foreach (DataColumn col in data.Columns)
{
lvw.Columns.Add(col.ToString());
}
foreach (DataRow row in data.Rows)
{
ListViewItem lst = default(ListViewItem);
lst = lvw.Items.Add(row(0));
for (int i = 1; i <= data.Columns.Count - 1; i++)
{
lst.SubItems.Add(row(i));
}
}
}
在C#中,要获取集合的索引,需要使用[ ]
(而VB使用( )
)。请专门针对DataRows参考此内容。
因此,您的代码应该看起来像:
lst = lvw.Items.Add(row[0]);
和
lst.SubItems.Add(row[i])
附带说明一下,您可能想了解default
关键字的使用情况。
编辑:
以下是一个完整的列表(没有太多的提示),在注意到您的代码实际上不会工作,并假设您真的打算按照描述进行操作之后:
foreach (DataRow row in data.Rows)
{
ListViewItem lst = default(ListViewItem);
for (int i = 0; i <= data.Columns.Count - 1; i++)
{
if (i == 0)
lst = new ListViewItem(row[0].ToString());
else
lst.SubItems.Add(row[i].ToString());
}
lvw.Items.Add(lst);
}
注意几件事:
lst
的实例化已更改lvw
将添加lst
及其子项- 只有在创建子项之后才会进行添加
免责声明:我还没有测试代码,但想法就在那里
您尝试过吗:?
lst = lvw.Items.Add(row[0]);
lst.SubItems.Add(row[I]);