none
¿Como puedo eliminar un renglon en mi BD SQL Server Mannager desde Data Grid en WPF ? RRS feed

  • Pregunta

  • Buen día, tengo un WPF con un data grid que me muestra datos de SQL, a este data grid quiero aplicarle las operaciones de agregar, editar, eliminar  información a dicha BD,

    en este momento estoy programando el boton eliminar desde el Data GRid y me presenta el siguiente error:

    Referencia a objeto no establecida como instancia de un objeto.

     no he logrado hacer que me elimine el renglón aquí envió información para que me ayuden 

    private void DeleteButton_Click(object sender, RoutedEventArgs e)

            {

                llenaGrid selected = dataGrid1.SelectedItem as llenaGrid;

                if (dataGrid1.SelectedIndex == -1)

                {

                    MessageBox.Show("Debe seleccinar un registro");

                }

                else

                {

                    MessageBoxResult result = new MessageBoxResult();

                    result = MessageBox.Show("Esta seguro que desea eliminar el registro?", "Advertencia", MessageBoxButton.YesNo, MessageBoxImage.Information);

                    if (result == MessageBoxResult.Yes) // si la respuesta es sí

                    {

                        string cod_emp = selected.cod_emp_expl.ToString();

                        var eliminar = (from x in conex.conn.snemple_expl

                                        where x.cod_emp_expl == cod_emp

                                        select x).First();

                        conex.conn.snemple_expl.DeleteObject(eliminar);

                        try

                        {

                            conex.conn.SaveChanges();

                            MessageBox.Show("Registro Eliminado");

                            Window_Loaded(null, null);

                        }

                        catch (System.Data.UpdateException)

                        {

                            MessageBox.Show("No se puede eliminar un registro asociado a otro, revise los proyectos para saber cual esta asociado a este registro", "No se puede eliminar", MessageBoxButton.OK, MessageBoxImage.Information);

                        }

                    }

                }

            }

     

     Y el grid es el siguiente:

    <Grid>   

            <DataGrid Name="dataGrid1" AutoGenerateColumns="False" DataContext="{Binding}" HorizontalAlignment="Stretch"

                      Margin="8,48,12,12" ScrollViewer.HorizontalScrollBarVisibility="Visible" VerticalAlignment="Stretch"

                      Visibility="Visible" SelectionChanged="dataGrid1_SelectionChanged" IsReadOnly="True" RowEditEnding="dataGrid1_RowEdithEnding" TabIndex="0" Grid.Row="1">

                <DataGrid.Columns>

                    <DataGridTextColumn Binding="{Binding Path=cod_emp_expl}"    Header="Cod. Empl" Width="50" />

                    <DataGridTextColumn Binding="{Binding Path=reg_num}"    Header="Rg" Width="30" />

                    <DataGridTextColumn Binding="{Binding Path=empresa}"    Header="Empresa" Width="70" />

                    <DataGridTextColumn Binding="{Binding Path=direccion}"  Header="Dirección" Width="120" />

                    <DataGridTextColumn Binding="{Binding Path=telefonos}"  Header="Teléfono" Width="100" />

                    <DataGridTextColumn Binding="{Binding Path=empleo_act}" Header="Empleo Actual S/N" Width="70" />

                    <DataGridTextColumn Binding="{Binding Path=salario}"    Header="Salario" Width="70" />

                    <DataGridTextColumn Binding="{Binding Path=supervisor}" Header="Supervisor" Width="70" />

                    <DataGridTextColumn Binding="{Binding Path=c1}"         Header="Campo 1" Width="70" />

                    <DataGridTextColumn Binding="{Binding Path=c8}"         Header="Campo 8" Width="70" />

                    <DataGridTemplateColumn Header="Certificado" Width="100">

                        <DataGridTemplateColumn.CellEditingTemplate>

                            <DataTemplate>

                                <Button Content="Asignar" Name="btn_asigna" Click="btn_asigna_Click"></Button>

                            </DataTemplate>

                        </DataGridTemplateColumn.CellEditingTemplate>

                    </DataGridTemplateColumn>

                    <DataGridTemplateColumn Header="Edit Row">

                        <DataGridTemplateColumn.CellTemplate>

                            <DataTemplate>

                                <Button Content="Editar" Click="EditButton_Click" />

                            </DataTemplate>

                        </DataGridTemplateColumn.CellTemplate>

                    </DataGridTemplateColumn>

                    <DataGridTemplateColumn Header="Delete Row">

                        <DataGridTemplateColumn.CellTemplate>

                            <DataTemplate>

                                <Button Content="Eliminar" Click="DeleteButton_Click" />

                            </DataTemplate>

                        </DataGridTemplateColumn.CellTemplate>

                    </DataGridTemplateColumn>

                </DataGrid.Columns>

            </DataGrid>

            <Button Content="Buscar Trabajador" Height="23" HorizontalAlignment="Left" Margin="570,15,0,0" Name="btn_buscar" VerticalAlignment="Top" Width="109" Click="btn_buscar_Click" />

            <Button Content="Agregar Experiencia" Height="23" HorizontalAlignment="Left" Margin="685,15,0,0" Name="btnAgregarExpLab" VerticalAlignment="Top" Width="146" Click="btnAgregarExpLab_Click" />

        </Grid>

      Me aparece el siguiente error cuando trato de eliminar: "utlice la palabra clave new para crear una instancia de objeto", "determine si el objeto es null antes de llamar al objeto

    viernes, 29 de noviembre de 2013 12:50

Todas las respuestas