删除包含两个数据库的表中的记录时出错
本文关键字:记录 出错 数据库 删除 包含两 | 更新日期: 2023-09-27 18:28:22
首先,我想报告的是,由于我的英语,这是一个从西班牙语到英语的机器翻译,请原谅翻译中可能出现的错误。
我正在做的一个小程序有问题,希望你能帮我:我有一个数据库,里面有两个表customer(pelo2-hair),我在两个不同的窗口中访问它们。起初,在第一个窗口中有一个删除按钮,可以删除所有选定的客户记录,但在另一个窗口中,所有客户数据窗口都会更改,这会给我带来以下错误:
Unable to cast object of type 'System.Data.Linq.DataQuery`1[Peluqueria.Pelos2]' to type 'Peluqueria.Pelos2'.
这种情况偶尔会发生在Eliminar 按钮的事件中
private void Eliminar_Click(object sender, RoutedEventArgs e)
{
MessageBoxResult result = MessageBox.Show("Seguro que quieres eliminar este cliente?", "Confirmar",
MessageBoxButton.YesNo, MessageBoxImage.Information);
if (result == MessageBoxResult.Yes)
{
Pelo guar = (Pelo)Application.Current.Properties["seleccionar"];
var verTrabajo = (from o in baseDeDatos.Pelos2s
where o.num == guar.num
select o);
baseDeDatos.Pelos2s.DeleteOnSubmit((Pelos2)verTrabajo);
baseDeDatos.SubmitChanges();
actualizarDatos();
}
}
具体在行中:
baseDeDatos.Pelos2s.DeleteOnSubmit((Pelos2)verTrabajo);
我必须说,我也犯了同样的错误,即使是使用baseDeDatos.Pelos。我能帮你知道我做错了什么吗?可以采取不同的做法吗?谢谢你的帮助。
此行:
var verTrabajo = (from o in baseDeDatos.Pelos2s
where o.num == guar.num
select o);
返回一个集合。集合可能只包含您希望删除的一条记录,但您需要具体说明。
如果您希望它返回一个结果,以便使用该结果进行删除,请尝试使用SingleOrDefault():
var verTrabajo = (from o in baseDeDatos.Pelos2s
where o.num == guar.num
select o).SingleOrDefault();
在使用它进行删除之前,请确保检查它是否不是null
。