none
No me considera el Catch que estoy programando en Silverlight RRS feed

  • Pregunta

  • A ver si alguien me explica...no entiendo qué está pasando, en mi aplicación Silverlight con RIA Services, tengo en una pantalla un botón que se encarga de enviar los cambios realizados en la captura, a la BD SQL, el código de este botón está así:

            private void btnGuardar_Click(object sender, RoutedEventArgs e)
            {
                    try
                    {
    mtto_CategoriaEquipoDomainDataSource.SubmitChanges();
                    }
    
                    catch (System.Exception err)
                    {
                        frmError Error = new frmError("Error al intentar grabar los cambios " + System.Environment.NewLine + err.Message);
                        Error.Show();
                    }
            }

    Al hacer pruebas dejé un campo que en la BD está como NOT NULL, en nulos, (y no debe ser, ya voy a validar esto antes de permitir el botón Guardar) y al dar click al botón Guardar, a pesar de que esto lo tengo con try-catch, el programa aborta diciéndome :

    Excepción no controlada en línea 56, columna 13 en http://localhost:61346/MTTOTestPage.aspx

    0x800a139e - Error en tiempo de ejecución de JavaScript: Error no controlado en la aplicación de Silverlight

    Código: 4004   

    Categoría: ManagedRuntimeError

    Alguien sabe porqué me pasa esto?? no debería mandarme la ventana de error frmError con el mensaje que yo programé??

    Gracias por la ayuda que puedan brindarme


    cyndyrdz

    viernes, 10 de enero de 2014 20:06

Respuestas

  • Me contesto de nuevo:

    En el XAML:

            <riaControls:DomainDataSource x:Name="mtto_CategoriaEquipoDomainDataSource" AutoLoad="True" Height="0" 
                                          QueryName="GetMtto_CategoriaEquipoQuery" Width="0" d:DesignData="{d:DesignInstance Web:mtto_CategoriaEquipo, CreateList=true}"
                                          SubmittedChanges="MttoDomainDataSource_SubmittedChanges" >
                           <riaControls:DomainDataSource.DomainContext>
                    <Web:DomainServiceMTTO/>
                </riaControls:DomainDataSource.DomainContext>
            </riaControls:DomainDataSource>

    y en el .cs:

            private void MttoDomainDataSource_SubmittedChanges(object sender, SubmittedChangesEventArgs e)
            {
                if (e.HasError && e.EntitiesInError.All(t => t.HasValidationErrors))
                {
                    frmError Error = new frmError("ERROR AL INTENTAR GRABAR LOS CAMBIOS " + System.Environment.NewLine + System.Environment.NewLine + e.Error.ToString());
                    Error.Show();
                    e.MarkErrorAsHandled();
                }
                else if (e.HasError)
                {
                    frmError Error = new frmError("ERROR AL CARGAR LOS DATOS " + System.Environment.NewLine + System.Environment.NewLine + e.Error.ToString());
                    Error.Show();
                    e.MarkErrorAsHandled();
                }
            }

    y Listo!!

    cyndyrdz

    jueves, 16 de enero de 2014 16:56