ArgumentOutofRangeException未处理,“InvalidArgument =值为'0'对'index'无效。”

时间:2014-05-17 04:05:14

标签: c#

我收到此错误“InvalidArgument ='0'的值对'index'无效。”

private void button3_Click(object sender, EventArgs e)
{
    object lst=listView1.SelectedItems[0].Clone();
    listView1.Items.RemoveAt(listView1.SelectedItems[0].Index);
    listView2.Items.Add((ListViewItem)lst);
    SqlCommand cmd = new SqlCommand("update visitortb set checkstat=1 where passno=" + text_passno.Text + "", db.Connect());
    if (cmd.ExecuteNonQuery() >= 0)
    {
        MessageBox.Show("Check OUT Complete");
    }
}

3 个答案:

答案 0 :(得分:2)

您尚未在ListView中选择任何项目。

SelectedItems属性是ListViewItem个对象的集合,就像任何集合一样,它可能是空的。

在尝试访问第一个元素之前,首先检查集合的Count属性。

if (listView1.SelectedItems.Count == 0)
    return;

// rest of your code

答案 1 :(得分:1)

试试这个:

  if (listView1.SelectedItems.Count > 0)
        {
            object lst = listView1.SelectedItems[0].Clone();
            listView1.Items.RemoveAt(listView1.SelectedItems[0].Index);
            listView2.Items.Add((ListViewItem)lst);

            MessageBox.Show("Check OUT Complete");

        }
        else
            MessageBox.Show("No item selected!");

答案 2 :(得分:0)

有两个绝对的原因,其中一个是真的:

1) The listView has no row
2) No item has been selected