0

Quisiera saber como hago para indicar dentro del codigo, que el producto ya existe en la base de datos.

Explico: El formulario pide ingresar un codigo existente, este es buscado en BD, se consigue y muestra al usuario un mensaje que indica el registro existente.

Ahora lo que quiero saber es: Como hacer lo contrario a la instruccion anterior, es decir, cuando el usuario escriba un codigo que no exista dentro de la BD, este me envie un mensaje indicando que el registro no existe y que puede ingresar un nuevo registro.

Esto es lo que tengo hecho y que funciona como quiero:

Pero al final es donde quiero colocar la instrucción donde indique que no existe el código y que puede ingresar uno nuevo.

 private void btn_buscarProducto_Click(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(textBox8.Text))
        {
            MessageBox.Show("Ingrese Código de barra.", "¡Advertencia!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            return;
        }

        using (ProductosEF _bdVentas = new ProductosEF())
        {
            Producto _Producto = new Producto();
            var BuscarProducto = _bdVentas.BusquedaProductos(textBox8.Text.Trim()).ToList();

            if (BuscarProducto.Count() > 0)
            {
                MessageBox.Show("Este producto ya existe en la base de datos.", "¡ATENCIÓN!", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
                txtcodei.Text = BuscarProducto.FirstOrDefault().codigo_interno;
                txtcodebar.Text = BuscarProducto.FirstOrDefault().codigo_barra;
                txtdescripcion.Text = BuscarProducto.FirstOrDefault().descripcion;
                txtmarca.Text = BuscarProducto.FirstOrDefault().marca;
                txttamaño.Text = BuscarProducto.FirstOrDefault().tamaño;
                txtcosto.Text = BuscarProducto.FirstOrDefault().costo.ToString();
                txtprecio.Text = BuscarProducto.FirstOrDefault().precio.ToString();
           }

        }
Dave
  • 205
  • 3
  • 19
  • 1
    con esta línea no compruebas ya si hay alguno en la bases de datos? if (BuscarProducto.Count() > 0) – Pablo Simon DiEstefano Feb 20 '18 at 14:00
  • 1
    No entiendo el problema. Si sabes que hay alguno, entonces tambien sabes que no hay ninguno... – gbianchi Feb 20 '18 at 14:01
  • Sucede que, cuando escribo un código que no existe en la BD, entonces me sale un error en esta linea: **txtcodei.Text = BuscarProducto.FirstOrDefault().codigo_interno;** Y el Error dice: **Additional information: Referencia a objeto no establecida como instancia de un objeto.** – Dave Feb 20 '18 at 14:04
  • pero eso que decis, no esta en la pregunta, ni por ningun lado! o sea, tu pregunta es como evitar ese error, nada que ver con lo que explicaste ;). Ahora, ordenemosla... apreta el boton [edit], agrega la informacion correcta de lo que pasa en la pregunta, y trabajemos desde ahi... – gbianchi Feb 20 '18 at 14:11
  • y el error es que buscarproducto es nulo ;) mira https://es.stackoverflow.com/questions/75999/qu%c3%a9-es-una-nullreferenceexception-y-c%c3%b3mo-solucionarla – gbianchi Feb 20 '18 at 14:13

1 Answers1

1

Solucionado: Agregue la linea del Else, y asunto arreglado.

     else {  
MessageBox.Show("Este codigo no existe en la base de datos. ¿Desea ingresar uno nuevo?", "¡ATENCIÓN!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
          }
Dave
  • 205
  • 3
  • 19