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

datos duplicados en tabla

Estas en el tema de datos duplicados en tabla en el foro de .NET en Foros del Web. hola amigos, tengo dos tablas, tabla A y tabla B, son idénticas, una recibe datos externos, la otra los recibe de la tabla que recibe ...
  #1 (permalink)  
Antiguo 03/07/2011, 04:20
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Pregunta datos duplicados en tabla

hola amigos, tengo dos tablas, tabla A y tabla B, son idénticas, una recibe datos externos, la otra los recibe de la tabla que recibe datos externos, imaginemos que la tabla A recibe datos externos y ahora los quiero volcar a la tabla B, hasta ahí todo perfecto...pero hay un campo que se llama FECHA y quiero que si la fecha ya existe no pase datos de la tabla A a la tabla B, que solo pase los datos que no están repetidos llevo un mes con esto, alguien puede ayudarme...where no funciona y counto y distinct tampoco....
  #2 (permalink)  
Antiguo 03/07/2011, 05:33
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: datos duplicados en tabla

aquí no ayuda nadie?¿?, cuando me va a lanzar un cable alguien=?=?

venga por dios que estoy atascaooo
  #3 (permalink)  
Antiguo 03/07/2011, 11:13
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: datos duplicados en tabla

'copia toda la información de introventas a introventasahora según las fechas que se filtren
Public Sub copiaintro()

Dim adapta2 As New OleDbDataAdapter
Dim datavacio As New DataSet

Try
'creo los parametros que uso en el SELECT, para filtrar en el datagridview(dgtotales)
Dim comados = conexion.CreateCommand
comados.CommandType = CommandType.Text
Dim comatres = conexion.CreateCommand
comatres.CommandType = CommandType.Text
Dim comacuatro = conexion.CreateCommand
comacuatro.CommandType = CommandType.Text
Dim comacinco = conexion.CreateCommand
comacinco.CommandType = CommandType.Text
Dim prueba = conexion.CreateCommand
prueba.CommandType = CommandType.Text
Dim prueba2 = conexion.CreateCommand
prueba2.CommandType = CommandType.Text

'inserto en fechasfiltro la información seleccionada por el usuario en fecha para poder comprar si existe con fechasfiltrofinal
comatres.CommandText = "INSERT INTO FechasFiltro SELECT DISTINCT Fecha FROM [Introducción De Ventas] WHERE Fecha BETWEEN @FI AND @FF Group by Fecha"
comatres.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
comatres.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))

'inserto la información en fechasfiltrofinal de introventasahora para poder comparar con lo que se carga nuevo y así no permitir datos duplicados
comacuatro.CommandText = "INSERT INTO FechasFiltroFinal SELECT DISTINCT Fecha FROM IntroduccionDeVentasAhora WHERE Fecha BETWEEN @FI AND @FF Group by Fecha"
comacuatro.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
comacuatro.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))

'selecciono los campos iguales en fechasfiltro y fechasfiltrofinal para saber si hay fechas duplicadas y para así la carga de datos en introventasahora
comacinco.CommandText = "SELECT FechasFiltro.Fecha, FechasFiltroFinal.Fecha FROM FechasFiltro,FechasFiltroFinal Where FechasFiltro.Fecha = FechasFiltroFinal.Fecha"
comacinco.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
comacinco.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))

'borro fechasfiltro para que este nunca se quede con fechas viejas y no permita cargar datos nuevos que si debería dejar cargar
prueba.CommandText = "Delete FROM FechasFiltro"

'borro fechasfiltrofinal para que no se quede información antigua que no permita cargar datos nuevos que no están
prueba2.CommandText = "Delete FROM FechasFiltroFinal"

'inserto en introventasahora las fechas seleccionadas por el usuario de introventas
comados.CommandText = "Insert Into IntroduccionDeVentasAhora SELECT * FROM [Introducción De Ventas] WHERE Fecha BETWEEN @FI AND @FF"
comados.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
comados.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))


conexion.Open()
'inserta en la tabla fechasfiltro de introventas para comparar lo nuevo con introventasahora y ver si ya existen las fechas
Dim lecto3 = comatres.ExecuteNonQuery
'inserta en la tabla fechasfiltrofinal desde introventasahora para saber lo que ya hay cargado en la base de datos
Dim rowsAffected = comacuatro.ExecuteNonQuery

'Dim lineasafectadas As New Integer
Dim lineasafectadas As OleDbDataReader
frmProgressbar.Show()
'selecciono los campos iguales entre fechas filtro y fechasfinal
lineasafectadas = comacinco.ExecuteReader
'si las lineas afectadas son false entonces ejecuta por que no hay datos duplicados si es true no permite copiar información
If lineasafectadas.HasRows = False Then
'ejecuto la carga de datos de introventas a introventasahora para hacer fiscal
Dim Lecto1 = comados.ExecuteNonQuery
'borra la tabla filtro fechas para que no se quede la información y de mensaje de datos duplicados cuando ya no lo están
Dim probar = prueba.ExecuteNonQuery
Dim probar2 = prueba2.ExecuteNonQuery
MessageBox.Show("Se han copiado los datos seleccionados entre fechas " + Fecha1.Value.Date.ToString("dd/MM/yyyy") + " y " + Fecha2.Value.Date.ToString("dd/MM/yyyy"), """ AViso GesDreamtPos")
cargacomboMostradores()
cargacomboTerminales()
'LbFechaPrimera.Visible = True
cargafechaslabelprimera1()
'LbFechasultima.Visible = True
cargafechaslabelultima1()
'Lhasta.Visible = True
RadioBTodo.Checked = False
RadioBTodo.Checked = True
frmProgressbar.Close()
Else
frmProgressbar.Show()
MessageBox.Show("!Fechas DUPLICADAS¡, no se realizará la acción, compruebe las fechas en la barra superior de la aplicación", "Aviso datos duplicados GesDreamtPos")
'borra la tabla filtro fechas para que no se quede la información y de mensaje de datos duplicados cuando ya no lo están
Dim probar = prueba.ExecuteNonQuery
Dim probar2 = prueba2.ExecuteNonQuery
frmProgressbar.Close()
End If
Catch
MessageBox.Show("Existe alguna acción realizada incorrectamente", "Aviso GesDreamtPos acción incorrecta en la aplicación")
End Try
conexion.Close()
  #4 (permalink)  
Antiguo 03/07/2011, 11:13
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: datos duplicados en tabla

esa respuesta es por si a alguién le vale, ya lo he arreglado
  #5 (permalink)  
Antiguo 04/07/2011, 08:32
Avatar de HaverRamirez  
Fecha de Ingreso: junio-2011
Ubicación: Guatemala
Mensajes: 273
Antigüedad: 12 años, 10 meses
Puntos: 33
Respuesta: datos duplicados en tabla

Changos, es mucho trabajo, se podria hacer solo con un query...

Etiquetas: sql
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 16:43.