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

Conectar mi base de datos mysql con visual 2008 .net

Estas en el tema de Conectar mi base de datos mysql con visual 2008 .net en el foro de .NET en Foros del Web. Hola. quiero conectar mi base de datos mysql con visual 2008.net, tengo instalado wamp server 2.0, en la cual usando phpmyadmin, cree una base de ...
  #1 (permalink)  
Antiguo 12/08/2009, 19:30
Avatar de Gious  
Fecha de Ingreso: septiembre-2006
Mensajes: 122
Antigüedad: 17 años, 7 meses
Puntos: 0
De acuerdo Conectar mi base de datos mysql con visual 2008 .net

Hola.

quiero conectar mi base de datos mysql con visual 2008.net, tengo instalado wamp server 2.0, en la cual usando phpmyadmin, cree una base de datos, la pregunta puedo conectarme en esta base de datos atravez de visual?, la ruta donde esta la base de datos es muy larga eso es recomendable o es mejor que me descargue solo el gestor de mysql 5.0? como puedo hacer que al generar el ejecutable de mi programa se guarde la base de datos, es decir que cada vez que se instale el programa de igual manera se genere la base de datos automaticamente en la pc, como lograr eso, bueno no se si me explique?, o que base de datos me recomiendan usar para este programita. solo es de entrada y salida de almacen.
__________________
El futuro es hoy Aprende Linux. Guadalinex,
  #2 (permalink)  
Antiguo 13/08/2009, 08:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Conectar mi base de datos mysql con visual 2008 .net

MySQL tiene un conector .Net propio, que se coloca como referencia y te permite administrar el uso de la base de datos (sin importar dónde este´), sin necesidad de la presencia del Wamp.
El tema es que MySQL es un server de bases de datos que provee recursos por sí mismo. La única practicidad del Wamp es que te instale el Apache (WebServer) y el PHP (servidor de PHP) sin la necesidad de hacer extrañas configuraciones manuales. Pero si no vas a crear páginas con PHP, no te sirve de nada y lo único que usas es MySQL.
En definitiva, descarga el conector .Net de la página oficial de MySQL, ponlo como referencia en tu proyecto y usa los componentes ADO que te provee. El resto es igual que con cualquier conjunto ADO que hayas usado antes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 13/08/2009, 11:35
Avatar de Gious  
Fecha de Ingreso: septiembre-2006
Mensajes: 122
Antigüedad: 17 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Conectar mi base de datos mysql con visual 2008 .net

Hola saludos.

muchas gracuas por tu respuesta. tome un pequeño curso de visual hace 4 años, vi algo de ado conectado y ado desconectado. en fin. ya me descargue el conector de hecho ya hasta lo instale, pero no se como hacer referecia a mi base de datos desde visual. ya investique un poco y me encontre este siguiente codigo.
Código:
'esto va en la cabecera son como tus librerias.
imports System.Data
Imports System.Data.sqlClient

Protected miConexion As New SqlConnection("server=(Tu_Servidor);database=Tu_BD;Trusted_Connection=yes") 
protected Adpater  As new SqlDataAdapter
protected Command As new SqlCommand
protected Ds As DataSet

function consultas()
     Adapter = new SqlDataAdapter("miQuery",miConexion)
     Adapter.fill(ds,"Creando_Una_Vista_De_MiConsulta")
     miConexion.close()
end Function


function modificar()
  miConexion.open()
  Command = new SqlCommand("miQuery",miConexion)
 command.executeNonQuery()
cnx.close()
End function
si pudieran explicarme como esta funcionando este codigo se los agradeceria mucho.

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.
saludos cordiales
__________________
El futuro es hoy Aprende Linux. Guadalinex,
  #4 (permalink)  
Antiguo 14/08/2009, 07:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Conectar mi base de datos mysql con visual 2008 .net

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 original
  1. Imports MySql.Data.MySqlClient
  2. Imports MySql.Data.Types
Variables:
Código vb.net:
Ver original
  1. Private Conexion As MySqlConnection
  2.     Private Reader As MySqlDataReader
  3.     Private Adapter As MySqlDataAdapter
  4.     Private Sentencias As MySqlCommand
  5.     Private Trans As MySqlTransaction
  6.     Private strCx As String
  7.     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 original
  1. Public Function conectar(ByVal vServer As String, ByVal vBase As String, ByVal vUser As String, ByVal vPwd As String, ByVal oPort As Int16) As Boolean
  2.         Dim strCx As String
  3.         Dim SetDatos As New DataSet
  4.         If Not conexion Is Nothing Then
  5.             If conexion.State = 1 Then
  6.                 Return True
  7.             ElseIf conexion.State = ConnectionState.Closed Then
  8.                 conexion.Open()
  9.                 Try
  10.                     Sentencias = New MySqlCommand("SET SESSION SQL_BIG_SELECTS=1;", conexion)
  11.                     Sentencias.ExecuteNonQuery()
  12.                 Catch ex As Exception
  13.                     MessageBox.Show("El servidor responde: " & ControlChars.CrLf & ex.Message, "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
  14.                 End Try
  15.                 Return True
  16.             Else
  17.                 Return False
  18.             End If
  19.         Else
  20.             Try
  21.                 strCx = "Database=" & vBase & ";Data Source=" & vServer & ";User Id=" & vUser & ";Password=" & vPwd & ";Port=" & oPort.ToString & ";CharSet=utf8;Pooling=false;"
  22.                 conexion = New MySqlConnection(strCx)
  23.                 conexion.Open()
  24.                 sSQL = "SHOW PROCESSLIST;"
  25.                 Adapter = New MySqlDataAdapter(sSQL, conexion)
  26.                 Adapter.Fill(SetDatos, "LISTAPROCESOS")
  27.                 If SetDatos.Tables("LISTAPROCESOS").Select("USER = '" & vUser & "'").Length > 1 Then
  28.                     conexion.Close()
  29.                     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)
  30.                     Return False
  31.                 End If
  32.                 Return True
  33.             Catch ex As MySqlException
  34.                 Select Case ex.Number
  35.                     Case 0
  36.                         MessageBox.Show("El servidor no responde." & ControlChars.CrLf & "Consulte con el Administrador de Sistemas", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
  37.                     Case 1226
  38.                         MessageBox.Show("El usuario ingresado ya se encuentra logueado en otro puesto.", "Error de usuario en conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
  39.                     Case 1040
  40.                         MessageBox.Show("Demasiadas conexiones activas." & ControlChars.CrLf & "Notifique al Administrador de la base.", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
  41.                     Case 1044
  42.                         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)
  43.                     Case 1045
  44.                         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)
  45.                     Case 1049
  46.                         MessageBox.Show("La base de datos no existe." & ControlChars.CrLf & "Notifique al Administrador del sistema.", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
  47.                 End Select
  48.                 Return False
  49.             End Try
  50.             Return True
  51.         End If
  52.     End Function
Crear y ejecutar una sentencia cargada en una variable:
Código vb.net:
Ver original
  1. sSQL = "DROP TABLE IF EXISTS GEOCODE;"
  2.             ' --------------------------------------------------------------------------------
  3.             Sentencias = New MySqlCommand(sSQL, conexion)
  4.             Sentencias.ExecuteNonQuery()

Crea y ejecutar una lectura de una tabla a un datatable:
Código vb.net:
Ver original
  1. sSQL = "SELECT   *  FROM CATEGORIAS;"
  2. Sentencias = New MySqlCommand(sSQL, conexion)
  3. Adapter = New MySqlDataAdapter(Sentencias)
  4. Adapter.Fill(oTabla)
Crea y ejecutar una lectura de un valor a una variable integer:
Código vb.net:
Ver original
  1. sSQL = "SELECT LAST_INSERT_ID();"
  2. ' --------------------------------------------------------------------------------
  3. Sentencias = New MySqlCommand(sSQL, conexion)
  4. oId = Convert.ToInt32(Sentencias.ExecuteScalar)

Espero que te sirvan
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 21/08/2009, 18:01
Avatar de Gious  
Fecha de Ingreso: septiembre-2006
Mensajes: 122
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Conectar mi base de datos mysql con visual 2008 .net

Hola.

Gnzsoloyo, Muchas gracias por su respuesta me ha sido de mucha utilidad, pero mi otra pregunta es la siguiente, suponiendo ya hecho todo lo anterior y ya terminado mi sistema. necesito crear el ejecutable para poder instalarlo en cualquier maquina,(install shield), pero al crear el ejecutable automaticamente me va a cargar la base de datos, para que al instalarse el programa se instale tambien la base de datos o hay que estar creando la base de datos y las tablas en cada maquina o hay que hacer alguna configurarcion extra?, no se si me explique de lo contrarario hagamelo saber por favor
__________________
El futuro es hoy Aprende Linux. Guadalinex,
  #6 (permalink)  
Antiguo 20/06/2010, 13:06
 
Fecha de Ingreso: abril-2009
Mensajes: 4
Antigüedad: 15 años
Puntos: 0
Respuesta: Conectar mi base de datos mysql con visual 2008 .net

dADasdASDasd
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:24.