我有一个简单的应用程序,其中有一个包含数据库中作者姓名的列表框(出于该项目的目的,1 个作者 = 1 本书)。我必须为此应用程序使用类型化的 DataSet。
当您选择其中一位作者时,旁边会出现三个文本框。一个显示所选作者的姓名,另一个显示与他相关的书籍,最后一个显示出版日期。
在这个表格上,我有 3 个按钮。一个应该从数据库中删除选定的行(在列表框中),一个应该更新选定的行,一个应该插入一个新行。
我只是通过使用从数据源拖放到表单上来填充列表框和文本框,所以我的代码中唯一的一行是:
this.BookTableAdapter.Fill(this.myDataSet.Book);
这当然发生在负载上。
我开始尝试实现删除功能并将其放在删除按钮的 onClick 事件中:
MyDataSet.BookRow selectedBook = (MyDataSet.BookRow)listBox1.SelectedItem;
selectedBook.Delete();
当我按下删除按钮时,它给了我以下异常:
System.InvalidCastException: Unable to cast object of type 'System.Data.DataRowView' to type 'BookRow'.
谁能告诉我我在这里做错了什么?