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

if para solucionar un error

Estas en el tema de if para solucionar un error en el foro de .NET en Foros del Web. hola amigos, tengo un problemilla para vosotros un problema super para mi, tengo que detectar un error al hacer un executenonquery...y hacer una cosa u ...
  #1 (permalink)  
Antiguo 29/06/2011, 16:19
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Pregunta if para solucionar un error

hola amigos, tengo un problemilla para vosotros un problema super para mi, tengo que detectar un error al hacer un executenonquery...y hacer una cosa u otra depende el error, es decir si el error es detectado hacer algo y si no hay error hacer otra cosa, os pongo el código el error se detecta en el lecto4...si se detecta lo siguiente se ejecuta y si no no...gracias

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


comatres.CommandText = "INSERT INTO FechasFiltro SELECT Fecha FROM [Introducción De Ventas] WHERE Fecha BETWEEN @FI AND @FF Order by Fecha"
comatres.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
comatres.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))

comacuatro.CommandText = "INSERT INTO FechasFiltroFinal SELECT Fecha FROM FechasFiltro WHERE FechasFiltroFinal.Fecha <> FechasFiltro.Fecha 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"))

comacinco.CommandText = "Delete From FechasFiltro"
comacinco.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
comacinco.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))

comados.CommandText = "INSERT INTO IntroduccionDeVentasAhora SELECT * FROM [Introducción De Ventas] WHERE Fecha BETWEEN @FI AND @FF order by Fecha"
comados.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
comados.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))

conexion.Open()

Dim lecto2 = comatres.ExecuteNonQuery
Dim lecto4 = comacuatro.ExecuteNonQuery
If lecto4 = comacuatro.ExecuteNonQuery Then

Else

End If
Dim Lecto1 = comados.ExecuteNonQuery
Dim lecto6 = comacinco.ExecuteNonQuery
Dim lecto5 = comacinco.ExecuteNonQuery

Catch
cargacomboMostradores()
cargacomboTerminales()
'cargacombos()

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"), "")
'LbFechaPrimera.Visible = True
cargafechaslabelprimera1()
'LbFechasultima.Visible = True
cargafechaslabelultima1()
'Lhasta.Visible = True
conexion.Close()
'Catch

End Try
'BPasa.Enabled = False

End Sub
  #2 (permalink)  
Antiguo 29/06/2011, 16:37
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: if para solucionar un error

intente esto y casi está, pero cuando las líneas afectadas son 0 no me salta el mensaje

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


comatres.CommandText = "INSERT INTO FechasFiltro SELECT Fecha FROM [Introducción De Ventas] WHERE Fecha BETWEEN @FI AND @FF Order by Fecha"
comatres.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
comatres.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))

comacuatro.CommandText = "INSERT INTO FechasFiltroFinal SELECT Fecha FROM FechasFiltro WHERE FechasFiltroFinal.Fecha <> FechasFiltro.Fecha 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"))

comacinco.CommandText = "Delete From FechasFiltro"
comacinco.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
comacinco.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))

comados.CommandText = "INSERT INTO IntroduccionDeVentasAhora SELECT * FROM [Introducción De Ventas] WHERE Fecha BETWEEN @FI AND @FF order by Fecha"
comados.Parameters.AddWithValue("@FI", Fecha1.Value.Date.ToString("dd/MM/yyyy"))
comados.Parameters.AddWithValue("@FF", Fecha2.Value.Date.ToString("dd/MM/yyyy"))


conexion.Open()

Dim lecto3 = comatres.ExecuteNonQuery
'Dim lecto4 = comacuatro.ExecuteNonQuery

Dim rowsAffected As Integer
rowsAffected = comacuatro.ExecuteNonQuery()

If rowsAffected = 0 Then
MessageBox.Show("Datos Duplicados", "Aviso GesDreamtPos Fechas Duplicadas")
Else
Dim Lecto1 = comados.ExecuteNonQuery
Dim lecto5 = comacinco.ExecuteNonQuery
End If



cargacomboMostradores()
cargacomboTerminales()
'cargacombos()

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"), "")
'LbFechaPrimera.Visible = True
cargafechaslabelprimera1()
'LbFechasultima.Visible = True
cargafechaslabelultima1()
'Lhasta.Visible = True
conexion.Close()
'Catch
Catch
End Try
'BPasa.Enabled = False

End Sub
  #3 (permalink)  
Antiguo 29/06/2011, 19:43
 
Fecha de Ingreso: junio-2009
Mensajes: 96
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: if para solucionar un error

Mira creo que tu error es porque sino se realiza ninguna accion el excutenonquery no devuelve nada o devuleve -1 ... y vos estas preguntando por 0.

Podes colocar un BreakPoint (F9) y una vez que lo compilas lo vas siguiendo apretando F11 que es un paso a paso y asi ves que valor tiene asignado lecto4
  #4 (permalink)  
Antiguo 02/07/2011, 14:36
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: if para solucionar un error

el motivo es que esta consulta no va

comacuatro.CommandText = "INSERT INTO FechasFiltroFinal SELECT Fecha FROM FechasFiltro WHERE FechasFiltroFinal.Fecha <> FechasFiltro.Fecha order by Fecha group by Fecha"
  #5 (permalink)  
Antiguo 02/07/2011, 14:52
 
Fecha de Ingreso: noviembre-2010
Ubicación: madrid
Mensajes: 478
Antigüedad: 13 años, 5 meses
Puntos: 5
Respuesta: if para solucionar un error

lo que necesito es detectar si las fechas cargadas ya existen y si existen que no las cargue nadie me puede ayudar?¿?
  #6 (permalink)  
Antiguo 04/07/2011, 08:36
Avatar de HaverRamirez  
Fecha de Ingreso: junio-2011
Ubicación: Guatemala
Mensajes: 273
Antigüedad: 12 años, 10 meses
Puntos: 33
Respuesta: if para solucionar un error

yo creo que en lugar de ExecuteNonQuery podrias Probar ocn ExecuteScalar;

Etiquetas: Ninguno
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:05.