Como guardar por text de basic 2005 a tabla de MYSQL

Es un alegría conocer tu capacidad, me podrías ayudar sabes hace 2 semanas que busco por internet tutorial y no encontrado ninguno que dirija a como guardar con insert into a una tabla creada en Mysql desde unos textbox de visual basic 2005, solo me dan a como conectarse uso este código
Dim cod, dest, cap, de, pla As String
cod = TextBox1.Text
dest = cmbdes.Text
de = TextBox2.Text
cap = TextBox3.Text
pla = TextBox4.Text
Dim sql As String = "insert into `buses`(`Idcodi`,`destino`,`descripcion`,`capacidad`,`placa`) values (cod,dest,de,cap,pla)" 
si me ayudaras o con un proyectito donde tambien pueda hacer consultas desde un formulario te lo agradeceria por siempre, mi email es [email protected]
1

1 respuesta

Respuesta
1
La sintaxis de insert, select, etc son iguales para la mayoría de las bases de datos.. en el caso de sqlserver y mysql es lo mismo.
Lo que si cambia es la cadena de conexión.. de por si para vb2005 hay un componente que debes agregar al proyecto para que puedas conectar .net a mysql, eso lo consigues googleando.
Luego antes que te pongas a resolver los select o los insert.. verifica que conectes primero.. para lo cual busca el componente que te digo. aun así.. ¿por qué no usas sqlserverexpress como motor de bd? En vez de mysql...
Amigo experto ya me he conectado a mysql, me pasado semanas gogleando y no he podido encontrar, como guardar con sql, este es el código conexión:
Imports System.Data
Imports MySql.Data.MySqlClient
Module Module2
Dim ConStr As String = "server=localhost;uid=root;password=root;database=Transdora"
Dim Con As New MySqlConnection(ConStr)
// Esta función amigo experto hace un estilo de parámetro para ejecutar una inst5ruccion sql
Public Function MiFuncion(ByVal Sql As String) As String
Dim Comando As New MySqlCommand(Sql, Con)
Try
If Not Con Is Nothing Then Con.Close()
Con.Open()
Dim res As Integer = Comando.ExecuteNonQuery()
Return res.ToString
Catch ex As Exception
Return ex.Message
Finally
Con.Close()
Comando = Nothing
End Try
End Function
End Module

// ESTE ES EL SCRIPT DEL BOTON GUARDAR A QUI LLAMO LA FUNCION PERO NO GUARDA
Dim cod, dest, cap, de, pla As String
cod = TextBox1.Text
dest = cmbdes.Text
de = TextBox2.Text
cap = TextBox3.Text
pla = TextBox4.Text
Dim sql As String = "insert into `buses`(`Idcodi`,`destino`,`descripcion`,`capacidad`,`placa`) values (cod,dest,de,cap,pla)"
'Dim sql As String = "INSERT INTO BUSES (IDCODI,DESTINO,DESCRIPCION,CAPACIDAD,PLACA) VALUES ('"sql = sql & textbox1.text & "',' " & cmbdes.text & ", " & textbox2.text & "',' " & textbox3.text "',' " & textbox4.text & "')"
Label1.Text = MiFuncion(sql)
Module2.MiFuncion(sql)
Miremos que puede ser.
1. Modifica la función de conexión de esta forma.
Public Function MiFuncion(ByVal Sql As String) As String
Dim ConStr As String = "server=localhost;uid=root;password=root;database=Transdora"
Dim Con As New MySqlConnection(ConStr)
try
Con.Open()
Dim Comando As New MySqlCommand(Sql, Con)
Comando.ExecuteNonQuery()
con.close
Catch ex As Exception
msgbox ex.Message
Finally
Creo que no estas abriendo la conexión al momento de ejecutar el comando y sino igual si falla el insert capturas la excepción.
2. Coloca un breakpoint dentro de la función sql.. y ve paso a pso
3. esto esta bien construido Dim sql As String = "insert into `buses`(`Idcodi`,`destino`,`descripcion`,`capacidad`,`placa`) values (cod,dest,de,cap,pla)"
Aunque en la segunda no entiendo para que pones sql= sql. Eso esta erróneo.
Otra cosa creo usas combox.. ojo para obtener el valor no es .text sino .selectitem. o selectvalue.
Mira y me cuentas
Amigo experto mira modifique el modulo pero al final del modulo se pone una linea verde marcando error no se que es ya, estoy cerrando todos los procedimientos, ayudame experto
Public Function MiFuncion(ByVal Sql As String) As String
Dim ConStr As String = "server=localhost;uid=root;password=root;database=Transdora"
Dim Con As New MySqlConnection(ConStr)
Try
Con.Open()
Dim Comando As New MySqlCommand(Sql, Con)
Comando.ExecuteNonQuery()
Con.Close()
Catch ex As Exception
MsgBox(ex.Message)
Finally
End Try
End Function
End Module
No lo pongas en un modulo.. coloca el código.. al momento en que oprimas el botón.. es decir en el código de la ventana del formulario.. o sea.. en el formulario.. crea ese procedimiento y lo llamas
Experto ayudame no se que pasa mira hice la función como me dijiste pero marca error al decirle al: comando=nothing se subraya una linea azul cuando pongo el cursor me sale un tooltiptext: diciendo que no se ha declaro el nombre de "comando", no entiendo si se esta declarando:
Public Function MiFuncion(ByVal Sql As String) As String
Dim ConStr As String = "server=localhost;uid=root;password=root;database=Transdora"
Dim Con As New MySqlConnection(ConStr)
Try
Con.Open()
Dim comando As New MySqlCommand(Sql, Con)
Comando.ExecuteNonQuery()
Con.Close()
Catch ex As Exception
MsgBox(ex.Message)
Finally
Con.Close()
comando = Nothing  //AQUI MARCA QE NO SE HA DECLARO EL NOMBRE "COMANDO"
End Try
End Function
no hagas el nothing..
Experto al quitarlo vuelta al final de la función se marca con una linea verde diciendo que: la MIfuncion no devuelve todos los valores en la ruta de códigos ¿Qué sera?
END FUNCTION // AQUI SALE UNA LINEA VERDE, APESAR QE QUITO EL  'NOTHING'
Pues mira un par de cosas.
Asegurate que en los import estas obteniendo las librerías de conexión y de comandos para mysql.
lo otro.. ¿es qué no se te hace que aquí hay algo mal?
Dim comando As New MySqlCommand(Sql, Con)
Comando. ExecuteNonQuery()
¿Comando es diferente de Comando..?
Experto eso pense yo tambien qe Dim comando es diferente a Comando.executenonquery() vi bien cambiando las palabras derrepente una empezaba con mayuscula, tambien me percate de los imports:
Imports System.Data
Imports MySql.Data.MySqlClient 
Pero todo sigue igual experto sigue marcando ese error, ¿Y a no se que es ayudame experto?
OK mira esto a ver.. cuando tu declaras una función esta deberá retornar un valor obligatoriamente.. sino deberás declarla como vacío. Entones sino retorna mejor usar un procedimiento. Mira.
Procedimiento
Public Sub Mostrar(ByVal a As Short)
End Sub
Funcion..
Public Function Mostrar(ByVal a As Short)  As Integer
Return 0
End Function
mira experto como tu dices la funcion tiene qe devolver un valor mira lo que puse entre END TRY Y END FUNCTION
Public Function MiFuncion(ByVal Sql As String) As String
Dim ConStr As String = "server=localhost;uid=root;password=root;database=Transdora"
Dim Con As New MySqlConnection(ConStr)
Try
Con.Open()
Dim comando As New MySqlCommand(Sql, Con)
comando.ExecuteNonQuery()
Con.Close()
Catch ex As Exception
MsgBox(ex.Message)
Finally
Con.Close()
End Try
MiFuncion = Sql  //ESTO PUSE, PERO AHORA NO SE QE TIENE QE DEVOLVER LA FUNCION 
End Function
ps si le dices que devuelva string.. pone
mifuncion = "aaa"
ahora ya que eso no retorna nada ps dejalo como un procedimiento.. osea asi..
Public sub MiFuncion(ByVal Sql As String)
Dim ConStr As String = "server=localhost;uid=root;password=root;database=Transdora"
Dim Con As New MySqlConnection(ConStr)
Try
Con.Open()
Dim comando As New MySqlCommand(Sql, Con)
comando.ExecuteNonQuery()
Con.Close()
Catch ex As Exception
MsgBox(ex.Message)
Finally
Con.Close()
End Try
End sub
Experto no quiero abusar de tu Sabiduría, pero me podrías ayudar a terminar aquí como haría por favor si me das una guía para llamar al procedeimento en el botón guardar, y como lo usaría también en una consulta por ejemplo consultar los boletos vendidos de un determiando Destino y verlos en un grid, he oído que a esto se le llama consulta con parámetros, mil gracias experto por tu tiempo y ayuda estaré finalizando tu respuesta sabia..
A ver es fácil. Para llamar el procedimiento, lo que debes hacer es desde la ventana de diseño del .net haces doble click sobre el botón.. eso te crea un código.. que desde ser algo así.
private sub xxx (event handler onclick...)
end sub
Más o menos.. dentro de ese código haces el llamando al procedimiento si el procedimiento se llama "miconsulta" y recibe por parámetros un string.. entonces seria así.
private sub xxx (event handler onclick...)
miconsulta(mistring);
end sub
Y listo! Ahora lo que peudes hacer es simplemente poner el código si quieres de ese procedimiento en el evento onlick del botón.
2. La consulta pues es lo mismo.. tienes un procedimiento que ejecuta la sentencia.. esa sentencia retorna algo y usas un datareader para leer los datos un un dataset para cargarlos directo a un gridview.. pero te recomiendo que googlees un poco e investigues por que si vas a programas debes aprender...
El procedimiendo debería ser algo así.
conSql = New SqlConnection(cadena de conexion a la bd)
            conSql.Open()
            comSql = New SqlCommand("select perros from perreras", conSql)
            lector = comSql.ExecuteReader
            Do While lector.Read
                ejemplo a = lector(0)
            Loop
            Lector. Close()
  ConSql. Close()
No olvides valora la respuesta!
Experto cuando le doy en el botón guardar me sale este mensaje: Unknown column 'cod' in 'field list' parece que dice que la variable 'cod' es desconocida, pero si la estoy declarando ayudame experto aquí que paso
Yo creo que eso es otra pregunta... ¿por lo cual la que te resondi primero ya debería estar cerrada cierto? Entonces te encargo valorar la respuesta y si quieres abres otra con las dudas que tengas.. aun así te recomiendo leer un poco sobre el lenguaje y las bases de datos..
Ahora.. el mensaje que te sale es por que te dice.. que cod.. es una columna de la base de datos que no existe...
No olvides valorar y cerrar la respuesta!
Fantástica tu respuesta experto favorito por tu ayuda, haré lo que dices pero sabes mi columna campos están aquí tal como lo cree en MYSQL, bueno ya veré mil gracias gran amigo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas