2016-09-04 4 views
0

listviewのレコードを更新したいが、更新中ではない。異なる形式のリストビューを更新するC#

listviewform1であり、テキストボックスはform2である。エラーは

InvalidArgument=Value of '0' is not valid for 'index'. 

お願いします。

をForm1:

private void btnupdate_Click(object sender, EventArgs e) 
{ 
    UpdateBook ub = new UpdateBook(); 

    ub.txtbook.Text = lvbooks.SelectedItems[0].SubItems[0].Text; 
    ub.txtauthor.Text = lvbooks.SelectedItems[0].SubItems[1].Text; 
    ub.txtpublisher.Text = lvbooks.SelectedItems[0].SubItems[2].Text; 
    ub.txtyear.Text = lvbooks.SelectedItems[0].SubItems[3].Text; 
    ub.txtcategory.Text = lvbooks.SelectedItems[0].SubItems[4].Text; 
    ub.txtisbn.Text = lvbooks.SelectedItems[0].SubItems[5].Text; 
    ub.txtquantity.Text = lvbooks.SelectedItems[0].SubItems[6].Text; 

    ub.ShowDialog(); 
} 

のForm2:

private void btnupdate_Click(object sender, EventArgs e) 
{ 
    books b = new books(); 

    exequery("Update tbl_books set NameOfBook = '" + txtbook.Text + "',Author = '" + txtauthor.Text + "',Publisher='" + txtpublisher.Text + "',YearPublished = '" + txtyear.Text + "',Category='" + txtcategory.Text + "',ISBN = '" + txtisbn.Text + "',TotalNumberOfBooks = '" + txtquantity.Text + "' where NameOfBook = '"+ b.lvbooks.SelectedItems[0].Text +"'"); 

    MessageBox.Show("Item has been Updated!"); 
    showlv("Select * from tbl_books", b.lvbooks); 
    this.Hide(); 
    b.ShowDialog(); 
} 

答えて

0

あなたが更新する前に選択したものを持っていることを確認します。最初に何かが選択されているかどうか確認してください。

 If (ListView1.SelectedItems.Count. > 0) 
{ 
Update(); 
} 
else { 
MessageBox.Show ("Nothing was.  selected "); 
} 
+0

私は何かを選択しました。テキストボックスにも表示されますが、編集するとエラーが表示されます。 – maklot

関連する問題