0
我有一个有三个表的数据库。 另外我有一个datagrid显示两个实体(表)的几个属性。 要从两个表中选择信息,我使用可正常工作的存储过程。 我想选择这个数据网格中的一行,并按下一个按钮,这将被添加到数据库中的第三个表中。另一个按钮应该是显示实体的全部信息(所有属性)。 我不知道如何处理ChosenBooksAuthors后的X - 它应该是BookID的X,但我无法达到它,我该怎么办?如何将选定的行添加到表中? XAML:如何将选定的行从datagrid添加到数据库?
<Canvas>
<DataGrid CanUserAddRows="False" x:Name="Info" SelectedItem="{Binding Path=ChosenBooksAuthors}" ItemsSource="{Binding Path=Bookslist}" Background="Honeydew" Canvas.Top="190" Canvas.Left="38" Width="297" Height="105" ></DataGrid>
</Canvas>
C#:
private List<Book> _VMBooksAuthors = new List<Book>();
public List<Book> ChosenBooksAuthors
{
get
{
return _VMBooksAuthors;
}
set
{
_VMBooksAuthors = value;
OnPropertyChanged("ChosenBooksAuthors");
}
}
private void BasketButton_Click(object sender, RoutedEventArgs e)
{
Basket b = db1.BasketSet.Where(c => c.BookID == ChosenBooksAuthors.X).FirstOrDefault();
db1.BasketSet.Add(b);
db1.SaveChanges();
}
如果我有一个检查站检查,然后我看到,在db1.BasketSet.Add(B); b = null 但在前一行它需要属性 –
现在everyting是好的,所有数据存在,但当我写这个:db1.SaveChanges(); 它抛出 System.Data.Entity.Validation.DbEntityValidationException –
检查消息的内部异常。可能是你试图添加一个存在或缺少必需字段的密钥。 –