Cita: voy a desintalar el wamp y luego instalo el mysql 5.0, en este caso como pongo la direccion donde esta mi bd, si solo tengo instaldo mysql.
En realidad no necesitas la dirección deonde está la base en sí, sino cuál es la dirección de host.
MySQL se instala como servicio de Windows; este servicio escucha los puertos del3306 al 3309, pr lo que simplemente enviando el pedido al puerto correcto será suficiente. De hecho, si el host que le indicas está en la web, el MySQl mismo intentará contactarlo allí.
En este punto lo importante es:
1. Para crear el enlace con el MySQL solamente tienes que instanciar un objeto MysqlConnection y asignarle un ConnectionString adecuado. Los formatos del string los encontrarás en
http://www.connectionstrings.com/mysql, por ejemplo.
2. No abras y cierres constantemente la conexión. Existe mucho más overhead en la creación de cada nuevo enlace que lo que puedes perder manteniendolo inactivo. Simplemente haz una validación de su estado antes de enviar una consulta. Si está cerrado, abrelo y listo.
3. Las consultas son instancias de MysqlCommand. Este objeto te servirá para crear lectores (MysqlDataAdapter) o bien para ejecutar cualquier cosa.
4. Un objeto MysqlConnection te permite hacer dos cosas críticas con muy poco esfuerzo: Manejar transacciones y cambiar de base, sin por ello tender que cerrar la conexion activa.
He aquí unos ejemplos:
Imports:
Código vb.net:
Ver originalImports MySql.Data.MySqlClient
Imports MySql.Data.Types
Variables:
Código vb.net:
Ver originalPrivate Conexion As MySqlConnection
Private Reader As MySqlDataReader
Private Adapter As MySqlDataAdapter
Private Sentencias As MySqlCommand
Private Trans As MySqlTransaction
Private strCx As String
Private oSql, sSql As String
Conectar: Esta versión verifica que el usuario no esté conectado ya en otro puesto. Además verifica algunos errores posibles.
Código vb.net:
Ver originalPublic Function conectar(ByVal vServer As String, ByVal vBase As String, ByVal vUser As String, ByVal vPwd As String, ByVal oPort As Int16) As Boolean
Dim strCx As String
Dim SetDatos As New DataSet
If Not conexion Is Nothing Then
If conexion.State = 1 Then
Return True
ElseIf conexion.State = ConnectionState.Closed Then
conexion.Open()
Try
Sentencias = New MySqlCommand("SET SESSION SQL_BIG_SELECTS=1;", conexion)
Sentencias.ExecuteNonQuery()
Catch ex As Exception
MessageBox.Show("El servidor responde: " & ControlChars.CrLf & ex.Message, "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
Return True
Else
Return False
End If
Else
Try
strCx = "Database=" & vBase & ";Data Source=" & vServer & ";User Id=" & vUser & ";Password=" & vPwd & ";Port=" & oPort.ToString & ";CharSet=utf8;Pooling=false;"
conexion = New MySqlConnection(strCx)
conexion.Open()
sSQL = "SHOW PROCESSLIST;"
Adapter = New MySqlDataAdapter(sSQL, conexion)
Adapter.Fill(SetDatos, "LISTAPROCESOS")
If SetDatos.Tables("LISTAPROCESOS").Select("USER = '" & vUser & "'").Length > 1 Then
MessageBox.Show("No se puede realizar la conexión." & ControlChars.NewLine & "El usuario " & vUser & "está conectado desde otro puesto.", "Error: ADMINISTRADOR ACTIVO", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End If
Return True
Catch ex As MySqlException
Select Case ex.Number
Case 0
MessageBox.Show("El servidor no responde." & ControlChars.CrLf & "Consulte con el Administrador de Sistemas", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
Case 1226
MessageBox.Show("El usuario ingresado ya se encuentra logueado en otro puesto.", "Error de usuario en conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Case 1040
MessageBox.Show("Demasiadas conexiones activas." & ControlChars.CrLf & "Notifique al Administrador de la base.", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
Case 1044
MessageBox.Show("Usuario sin privilegios para el servidos." & ControlChars.CrLf & "Notifique al Administrador de la base.", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
Case 1045
MessageBox.Show("El nombre de usuario o la clave son incorrectas." & ControlChars.CrLf & "Vuelva a ingresarlas", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
Case 1049
MessageBox.Show("La base de datos no existe." & ControlChars.CrLf & "Notifique al Administrador del sistema.", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Select
Return False
End Try
Return True
End If
End Function
Crear y ejecutar una sentencia cargada en una variable:
Código vb.net:
Ver originalsSQL = "DROP TABLE IF EXISTS GEOCODE;"
' --------------------------------------------------------------------------------
Sentencias = New MySqlCommand(sSQL, conexion)
Sentencias.ExecuteNonQuery()
Crea y ejecutar una lectura de una tabla a un datatable:
Código vb.net:
Ver originalsSQL = "SELECT * FROM CATEGORIAS;"
Sentencias = New MySqlCommand(sSQL, conexion)
Adapter = New MySqlDataAdapter(Sentencias)
Adapter.Fill(oTabla)
Crea y ejecutar una lectura de un valor a una variable integer:
Código vb.net:
Ver originalsSQL = "SELECT LAST_INSERT_ID();"
' --------------------------------------------------------------------------------
Sentencias = New MySqlCommand(sSQL, conexion)
oId = Convert.ToInt32(Sentencias.ExecuteScalar)
Espero que te sirvan