将行数据记录插入listviewitem时出错

时间:2013-11-19 06:54:12

标签: c# arrays listview

private void btnDetails_Click(object sender, EventArgs e)
        {                
            try
            {
                string[] Row = { "", DocNum.Text, counter00,
                CategoryNo.Text, cmbMeas.Text, cmbSubMeas.Text,
                txtTarget.Text, txtActual.Text, cmbCARNo.Text,
                cmbOverStat.Text, cmbOverStat.Text }

                MMDetailsList.Items.Add(Row); <-- Error
            }
            catch (Exception) { }
        }

我已经尝试过这个将一个字符串记录行放入我的listviewitem列表而不对数据库进行任何操作。

private void btnDetails_Click(object sender, EventArgs e)
        {               
            try
            {
                string[] Row = new string[11]; 
                Row[0] = "";
                Row[1] = DocNum.Text;
                Row[2] = counter00;
                Row[3] = CategoryNo.Text;
                Row[4] = cmbMeas.Text;
                Row[5] = cmbSubMeas.Text;
                Row[6] = txtTarget.Text;
                Row[7] = txtActual.Text;
                Row[8] = cmbCARNo.Text;
                Row[9] = cmbOverStat.Text;
                Row[10] = cmbOverStat.Text;

                MMDetailsList.Items.AddRange(Row); <-- Error
            }
            catch (Exception) { }
        }

很抱歉,如何在没有任何数据库记录操作的情况下将记录添加到列表视图中。

1 个答案:

答案 0 :(得分:0)

问题:您要将String Array分配给ListView.Items.AddRange()功能,
但您需要将ListViewItemCollection传递给ListView.Items.AddRange()函数。

注意:如果要插入多行,则需要使用AddRange()函数,但在这种情况下,您希望一次插入一行,这样就不需要了需要使用AddRange()函数。

解决方案:您可以使用ListView.Items.Add()函数一次向ListView添加一行。 您需要将ListViewItem作为参数传递给ListView.Items.Add()函数。 ListViewItem获取String ArrayString Array每个String代表一个列值,因此,如果ListView中有10列,则应使用{ {1}} 10)作为参数在Length

中添加一行

语法:

ListView

示例代码:

ListViewItem listItem=new ListViewItem(String Array);
ListView.Items.Add(listItem);

完整代码:

ListViewItem listItem=new ListViewItem(ROW);
MMDetailsList.Items.Add(listItem);