none
evitar registros repetidos en datagridview RRS feed

  • Pregunta

  • Saludos Expertos, estoy trabajando con C# y me encontrado con una dificultad. estoy ingresando registros desde TextBox a un DataGridView para luego enviarlos a una tabla de sql server, el asunto es que no se como evitar que se agregue dos veces el mismo registro.

    He realizado algunos intentos recorriendo el grid pero no alcanzo a solucionar el problema. Estoy usando C# de VS2010

    y desde ya agradezco su valiosa ayuda.

    viernes, 14 de febrero de 2014 20:09

Respuestas

  • el asunto es que no se como evitar que se agregue dos veces el mismo registro.

    te animas a urilizar linq ? porque podrias aplciar una busqueda sobre el grid algo como ser

    bool exist = DataGridView1.Rows.Cast<DataGridViewRow>().Any(row =>Convert.ToString(row.Cells["nombrecol"].Value) == textbox1.Text);
    
    if(!exist){
    
       //aqui agregas al row
    
    }

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    • Editado Leandro TuttiniMVP lunes, 17 de febrero de 2014 17:22 modificacion Any()
    • Marcado como respuesta soyeddygh lunes, 17 de febrero de 2014 17:35
    viernes, 14 de febrero de 2014 21:10

Todas las respuestas

  • Hola:

    Analiza este articulo, encontraras dos formas distintas de llenar un DataGridView y también encontraras como evitar insertar valores duplicados:

    Llenar DataGridView con datos de TextBox’s usando Datasource o el método Add()


    Saludos desde Monterrey, Nuevo León, México!!!

    viernes, 14 de febrero de 2014 20:33
  • el asunto es que no se como evitar que se agregue dos veces el mismo registro.

    te animas a urilizar linq ? porque podrias aplciar una busqueda sobre el grid algo como ser

    bool exist = DataGridView1.Rows.Cast<DataGridViewRow>().Any(row =>Convert.ToString(row.Cells["nombrecol"].Value) == textbox1.Text);
    
    if(!exist){
    
       //aqui agregas al row
    
    }

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    • Editado Leandro TuttiniMVP lunes, 17 de febrero de 2014 17:22 modificacion Any()
    • Marcado como respuesta soyeddygh lunes, 17 de febrero de 2014 17:35
    viernes, 14 de febrero de 2014 21:10
  • Hola,

    Gracias por visitar el foro, déjanos saber tus comentarios respecto a la última respuesta. Quedamos atentos a tus comentarios.

    Saludos,

    Miguel

    MSDN/TechNet Soporte Comunidades

    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema.
    Es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    sábado, 15 de febrero de 2014 0:29
    Moderador
  • Saludos y gracias por responder. Leandro, intente implementar tu método pero me presenta un error diciendo que no contiene una definición para "Any".

    aqui la forma en que lo utilice.

    string moverse = Convert.ToString(dgvNomina.Rows.Cast<DataGridViewRow>().Any(row.Cells["idEmpleado"].Value) == txtEmpleado.Text);

    si me pudieses aclarar un poco mas. Gracias

    lunes, 17 de febrero de 2014 16:48
  • hola

    edite el ejemplo, me habia faltado definir el parametro de la expression lambda

    .Any(row =>

    igual es raro que reconozca el Cast<> y no el Any()

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 17 de febrero de 2014 17:25
  • Lo he probado y funciona a la perfección ... Gracias Leandro !!!

    Luis Romero

    domingo, 7 de junio de 2015 15:54
  • oye Leandro y como lo agrego al row? espero puedas ayudarme
    sábado, 19 de noviembre de 2016 20:43
  • el asunto es que no se como evitar que se agregue dos veces el mismo registro.

    te animas a urilizar linq ? porque podrias aplciar una busqueda sobre el grid algo como ser

    bool exist = DataGridView1.Rows.Cast<DataGridViewRow>().Any(row =>Convert.ToString(row.Cells["nombrecol"].Value) == textbox1.Text);
    
    if(!exist){
    
       //aqui agregas al row
    
    }

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    Hola Leandro muy bueno dias, como podria implementar esto pero con Vb 2008??
    sábado, 15 de septiembre de 2018 19:58