Hola, soy nuevo en visual studio 2010 y estoy experimentando un problema. Tengo una base de datos en access 2010 y quiero actualizar datos en una fila (ID_Cliente) dependiendo del número de cliente que quiera actualizar.
Todos los campos guardan el dato, menos los de los combobox dependientes para especificar la ciudad, estado y país.
Agradezco la ayuda.
Codigo para llenar paises (en el form load)
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''
comando.CommandType = CommandType.Text
sql1 = "SELECT Nombrepais FROM Tablapais"
comando.CommandText = sql1
readr1 = comando.ExecuteReader() ' llamamos a la función reader
If readr1.HasRows Then 'si hay filas lee
Do While readr1.Read() ' lee hasta el último registro
cbpais.Items.Add(readr1(0).ToString) 'si encontró algo en Nombrepais lo deposita en el combobox
Loop
End If
readr1.Close() ' se cierra el reader
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''
'CODIGO se ejecuta al seleccionar un país
Try
cbestado.Items.Clear() ' limpiamos el comboboxestado
comando.CommandType = CommandType.Text
'creamos la consulta
sql1 = "SELECT NombreEstado FROM Tablaestado where ID_Pais =@ID_Pais"
comando.CommandText = sql1
'dando valor a los parámetros
comando.Parameters.AddWithValue("@ID_Pais", cbpais.Text)
readr1 = comando.ExecuteReader() ' llamamos a la función reader
If readr1.HasRows Then ' si hay algo en las filas
Do While readr1.Read() ' lee hasta el último registro
cbestado.Items.Add(readr1(0).ToString) 'si encontró algo en Nombrepais lo deposita en el combobox
Loop
End If
readr1.Close() ' se cierra el reader
Catch ex As Exception
MsgBox(ex.Message)
End Try
-----------------------------------------------------------------------------------------------------
' CODIGO se ejecuta al seleccionar un estado
Try
cbciudad.Items.Clear() ' limpiamos el comboboxciudad
comando.CommandType = CommandType.Text
' creando la consulta
sql2 = "SELECT NombreCiudad FROM Tablaciudad where ID_Estado = '" & cbestado.Text & "'"
comando.CommandText = sql2
readr1 = comando.ExecuteReader() ' llamamos a la función reader
If readr1.HasRows Then ' si hay algo en las filas
Do While readr1.Read() ' lee hasta el último registro
cbciudad.Items.Add(readr1(0).ToString) 'si encontró algo en NombreCiudad lo deposita en el combobox
Loop
End If
readr1.Close() ' se cierra el reader
Catch ex As Exception
MsgBox(ex.Message)
end try
--------------------------------------------------------------------------------------------------------
'CODIGO para actualizar los datos
sql3 = "UPDATE Clientes SET " & _
"DIRECCION=@Direccion," & _
"TELEFONO =@Telefono," & _
"CIUDAD =@Ciudad," & _
"ESTADO =@Estado," & _
"PAIS =@Pais" & _
"CP =@CP," & _
"RFC =@RFC," & _
"TIPO_DE_PAGO =@TIPODEPAGO," & _
"NOMBRE_DE_CONTACTO =@NOMBREDECONTACTO," & _
"PUESTO_DE_CONTACTO =@PUESTODECONTACTO," & _
"TELEFONO_DE_CONTACTO =@TELEFONODECONTACTO," & _
"EMAIL_DE_CONTACTO =@EMAILDECONTACTO," & _
"NOTAS =@NOTAS " & _
"WHERE ID_Cliente = @ID_Cliente"
' Asigno la instrucción consulta que se va a ejecutar
comando.CommandText = sql3
comando.Parameters.AddWithValue("@Direccion", tbdireccion.Text)
comando.Parameters.AddWithValue("@Telefono", tbtelefono.Text)
comando.Parameters.AddWithValue("@Ciudad", cbciudad.Text)
comando.Parameters.AddWithValue("@Estado", cbestado.Text)
comando.Parameters.AddWithValue("@Pais", cbpais.Text)
comando.Parameters.AddWithValue("@CP", tbcp.Text)
comando.Parameters.AddWithValue("@RFC", tbrfc.Text)
comando.Parameters.AddWithValue("@TIPODEPAGO", cbtipodepago.Text)
comando.Parameters.AddWithValue("@NOMBREDECONTACTO ", tbnomcto.Text)
comando.Parameters.AddWithValue("@PUESTODECONTACTO ", tbpuesto.Text)
comando.Parameters.AddWithValue("@TELEFONODECONTAC TO", tbtelefono2.Text)
comando.Parameters.AddWithValue("@EMAILDECONTACTO" , tbemail.Text)
comando.Parameters.AddWithValue("@NOTAS", tbnotassobrecontacto.Text)
comando.Parameters.AddWithValue("@ID_Cliente", CInt(tbid.Text))
Try
comando.ExecuteNonQuery()
MsgBox("Actualización exitosa", MsgBoxStyle.Information, "Actualizar resgistro")
Catch ex As Exception
MsgBox(Err.Description, MsgBoxStyle.Exclamation, "Actualizar registro")
End Try