Foros del Web » Programación para mayores de 30 ;) » .NET »

Verificar si dato esta duplicado

Estas en el tema de Verificar si dato esta duplicado en el foro de .NET en Foros del Web. Buenas Tardes Amigos.... Estoy trabajando en Visual Studio 2008 y no se como hacer lo siguiente: En una BD de access tengo una tabla con ...
  #1 (permalink)  
Antiguo 06/03/2012, 12:21
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 7
Antigüedad: 15 años, 10 meses
Puntos: 0
Información Verificar si dato esta duplicado

Buenas Tardes Amigos.... Estoy trabajando en Visual Studio 2008 y no se como hacer lo siguiente:

En una BD de access tengo una tabla con registros:

Columna1| Columna2| Columna3| Columna4|
1 | 220| 230|
2 | 210| 220|

Donde quiero que al ingresar un numero en un Textbox (que se almacenara en la Columna4) antes de guardarlo valide primero si ya se encuentra duplicado en la misma fila, es decir que si yo ingreso el numero 220 para la primera fila en el textbox el me diga que este numero ya esta ingresado y no me permita ingresarlo..

Soy nuevo en esto y me interesa mucho saber como hacerlos.. gracias anticipadas.
  #2 (permalink)  
Antiguo 06/03/2012, 12:38
 
Fecha de Ingreso: octubre-2006
Mensajes: 53
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Verificar si dato esta duplicado

Si no te he entendido mal, tienes 4 textBox, uno para cada columna, y vas rellenando la información de cada textBox, y lo que quieres es que no pueda haber dos o más textBox con la misma información ¿es correcto?

Por ejemplo si está introduciendo la información del textBox4, en el evento validated pon el siguiente código:


if((txtBox1.Text != "" && txtBox1.Text == txtBox4.Text)
|| (txtBox2.Text != "" && txtBox2.Text == txtBox4.Text)
|| (txtBox3.Text != "" && txtBox3.Text == txtBox4.Text))
{
MessageBox.Show("Dato duplicado");
}
else
{
//código para guardar los datos en la base de datos.
}

Esto lo tendrías que hacer en cada evento validated de cada textBox, modificando solo las condiciones de comparación.



Un saludo.
Daimroc.

Última edición por daimroc; 06/03/2012 a las 12:42 Razón: mejora de código
  #3 (permalink)  
Antiguo 06/03/2012, 13:16
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 9 meses
Puntos: 267
Respuesta: Verificar si dato esta duplicado

Hola Atzel, yo asumo que cargas tu data en un DataGridView y posteriormente seleccionas una fila de la grilla y lo que haces luego es digitar el numero en un textbox y agregarlo medianto un boton, pues el codigo seria lo siguiente :

Código C:
Ver original
  1. //POR EJEMPLO ESTO EN EL EVENTO CLICK DE TU BOTON
  2. if (Convert.ToInt32(TuDataGridView.SelectedRows[0].Cells[1].Value) == Convert.ToInt32(TuTextBox.Text) || Convert.ToInt32(TuDataGridView.SelectedRows[0].Cells[2].Value) == Convert.ToInt32(TuTextBox.Text))
  3. {
  4. MessageBox.Show("Datos Duplicados","ERROR");
  5. }
  6. else
  7. {
  8. //TU INGRESO DE DATA.
  9. }
Espero te sirva el codigo.Saludos!.

PDT: Siempre indica el lenguaje con el que trabajas(VB o C#) y procura explicar mas sobre los controles que usas.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #4 (permalink)  
Antiguo 11/01/2013, 08:51
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 7
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Verificar si dato esta duplicado

Muchas Gracias por la ayuda....

Disculpen la demora en verificar este tema pero es que habia abandonado un poco el proyecto pero ahora lo retome nuevamente.

Me explico ahora un poco mejor:

Trabajo en Visual Express 2008.

Tengo un DataGridView donde cargo un archivo de Excel mediante un OpenFileDilog. Despues de que se carga y se muestra en el DataGridView tengo un CommandoButoon que permite guardar los datos mostrados en una Base de Datos de Access 2007.

Lo que necesito es que verifique el primer Campo (PERIODO) qeu si se encuentra ya incluido en la BD de Access no me permita guardar ningun dato del DataGridView.

A continuación dejo el codigo que tengo en mi Formulario:

Código:
Imports System.Data.OleDb
Public Class Form1

    Private Sub BTNEXAMINAR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNEXAMINAR.Click

        Dim stRuta As String = ""

        Dim openFD As New OpenFileDialog()
        With openFD
            .Title = "Seleccionar archivos"
            .Filter = "Archivos Excel(*.xls;*.xlsx)|*.xls;*.xlsx|Todos los archivos (*.*)|*.*"
            .Multiselect = False
            .InitialDirectory = "C:\Escaner\"
            If .ShowDialog = Windows.Forms.DialogResult.OK Then
                stRuta = .FileName
            End If
        End With
        TXTRUTA.Text = stRuta
        Try

            Dim stConexion As String = ("Provider=Microsoft.ACE.OLEDB.12.0;" & ("Data Source=" & (stRuta & ";Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=2"";")))

            Dim cnConex As New OleDbConnection(stConexion)
            Dim Cmd As New OleDbCommand("Select * from [Hoja1$]")
            Dim Ds As New DataSet
            Dim Da As New OleDbDataAdapter
            Dim Dt As New DataTable

            cnConex.Open()
            Cmd.Connection = cnConex

            Da.SelectCommand = Cmd
            Da.Fill(Ds)
            Dt = Ds.Tables(0)

            Me.DataGridView1.DataSource = Dt

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
        End Try

    End Sub

    Private Sub BTNGUARDAR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNGUARDAR.Click

        If DataGridView1.Rows.Count = 0 Then
            Return
        End If


        Using conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Escaner\BDTecnica.accdb;Persist Security Info=False;")
            Dim Trans As OleDbTransaction = Nothing

            Try

                conn.Open()
                'Abre Transación
                Trans = conn.BeginTransaction

                Dim query As String = "INSERT INTO TBLCALENDARIO (PERIODO, ACUE, ZONA, DESCR_ZONA, FECHA_APERTURA, FECHA_LECTURA," & _
                "FECHA_INSPECCION, MEDIDOS_ACTUAL, CANT_LECTORES, LECTXLECTOR, INSP_CRITICA, INSP_DH, INSP_OTRAS, CANT_INSPEC, " & _
                "INSPXINSPECTOR, ID) VALUES (@PERIODO, @ACUE, @ZONA, @DESCR_ZONA, @FECHA_APERTURA, @FECHA_LECTURA, @FECHA_INSPECCION," & _
                "@MEDIDOS_ACTUAL, @CANT_LECTORES, @LECTXLECTOR, @INSP_CRITICA, @INSP_DH, @INSP_OTRAS, @CANT_INSPEC, @INSPXINSPECTOR, @ID)"

                Dim cmd As New OleDbCommand(query, conn)
                cmd.Transaction = Trans 'asigna la transacción al command

                For Each row As DataGridViewRow In DataGridView1.Rows

                    cmd.Parameters.Clear()
                    If row.Cells("PERIODO").Value IsNot Nothing Then ' valido si la fila tiene datos ---- deberian hacer un metodo validar que verifique que la fila tiene datos validos.
                        cmd.Parameters.AddWithValue("@PERIODO", CStr(row.Cells("PERIODO").Value))
                        cmd.Parameters.AddWithValue("@ACUE", CStr(row.Cells("ACUE").Value))
                        cmd.Parameters.AddWithValue("@ZONA", CStr(row.Cells("ZONA").Value))
                        cmd.Parameters.AddWithValue("@DESCR_ZONA", CStr(row.Cells("DESCR_ZONA").Value))
                        cmd.Parameters.AddWithValue("@FECHA_APERTURA", CStr(row.Cells("FECHA_APERTURA").Value))
                        cmd.Parameters.AddWithValue("@FECHA_LECTURA", CStr(row.Cells("FECHA_LECTURA").Value))
                        cmd.Parameters.AddWithValue("@FECHA_INSPECCION", CStr(row.Cells("FECHA_INSPECCION").Value))
                        cmd.Parameters.AddWithValue("@MEDIDOS_ACTUAL", CStr(row.Cells("MEDIDOS_ACTUAL").Value))
                        cmd.Parameters.AddWithValue("@CANT_LECTORES", CStr(row.Cells("CANT_LECTORES").Value))
                        cmd.Parameters.AddWithValue("@LECTXLECTOR", CStr(row.Cells("LECTXLECTOR").Value))
                        cmd.Parameters.AddWithValue("@INSP_CRITICA", CStr(row.Cells("INSP_CRITICA").Value))
                        cmd.Parameters.AddWithValue("@INSP_DH", CStr(row.Cells("INSP_DH").Value))
                        cmd.Parameters.AddWithValue("@INSP_OTRAS", CStr(row.Cells("INSP_OTRAS").Value))
                        cmd.Parameters.AddWithValue("@CANT_INSPEC", CStr(row.Cells("CANT_INSPEC").Value))
                        cmd.Parameters.AddWithValue("@INSPXINSPECTOR", CStr(row.Cells("INSPXINSPECTOR").Value))
                        cmd.Parameters.AddWithValue("@ID", CStr(row.Cells("ID").Value))

                        cmd.ExecuteNonQuery()
                    End If
                Next

                'Confirma Transacción
                Trans.Commit()

                MsgBox("El archivo se ha guardado correctamente")


            Catch ex As Exception
                'cancela transacción SI EXISTE
                If Trans IsNot Nothing Then
                    Trans.Rollback()
                End If
                MsgBox(ex.Message)
            End Try
        End Using
    End Sub

End Class

Etiquetas: duplicados, registros, validar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:04.