繁体   English   中英

删除具有两个数据库的表中的记录时出错

[英]Error while deleting record in a table with two databases

首先,我想报告一下,由于我的英语,这是一个从西班牙语到英语的机器翻译,请原谅翻译中可能存在的错误。

我在一个小程序中遇到问题,我希望你可以帮助我:我有一个数据库,有两个表客户(pelo2发),我在两个不同的窗口访问它们,第一个在第一个有一个删除按钮窗口,删除所有选定的客户记录,但让其他窗口所有客户数据窗口并更改它给我以下错误:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM