Ingresar datos en tabla MySQL con vb.NET

Iniciado por Eavesdropping, 25 Abril 2012, 13:00 PM

0 Miembros y 1 Visitante están viendo este tema.

Eavesdropping

Les comento, estoy haciendo un software para ingresar datos en una una tabla ya creada, es MySQL para poder tenerla online y que el programa acceda. La idea es recuperarla en un DataGrid. Hice un código que lograba conectar con la bd, luego intenté ingresar datos de unos textBox y nada.

He buscado por el foro, y Graphixx da una solución que dice que va de maravilla, pero a mi me arroja 55 errores, y trasteando un poco con el código lo dejo en 33.

Acabo de empezar con vb.NET, utilizo Visual Studio 2010 Ultimate y me gustaría empezar con algún curso desde 0 pero no encuentro nada. Sé que se aprende leyendo códigos de otros y escribir hasta la saciedad, pero quisiera tener una base para entenderlos con más facilidad. Si alguien pudiese orientarme estaría más que agradecido ;).

Este es el source que codeé anteriormente, el problema lo tengo cuando pulso el button2, creo que no utilizo la sintaxis correcta de la cadena de conexión:

Código (vbnet) [Seleccionar]
Imports MySql.Data.MySqlClient

Public Class Form1

   Dim servidor As String
   Dim usuario As String
   Dim pswd As String
   Dim conexion As MySqlConnection

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Try
           servidor = ServerTxt.Text
           usuario = UsuarioTxt.Text
           pswd = pswdTxt.Text

           conexion = New MySqlConnection()
           conexion.ConnectionString = "server=localhost" & ";" & "user id=prueba" & ";" & "password=prueba" & ";" & "database=test"
           conexion.Open()
           MessageBox.Show("Conectado al servidor")
       Catch ex As MySqlException
           MessageBox.Show("No se ha podido conectar al servidor")
       End Try

   End Sub

   Public Sub ejecutar(ByVal sql1 As String, ByVal msbien As String, ByVal msmal As String)
       Dim comandos As New MySqlCommand
       Try
           comandos.Connection = conexion
           comandos.CommandText = sql1
           comandos.ExecuteNonQuery()
           MessageBox.Show(msok)
       Catch ex As MySqlException
           MessageBox.Show(msbad)
       End Try
   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

       ejecutar.objetos("INSERT INTO 'pet' (name,phone) VALUES ('" + Nombre.Text + "','" + Telefono.Text + "')", "Los datos se han ingresado con exito.", "Error, no se ha podido introducir los datos.")

   End Sub
End Class


Y este el que me arroja tantos errores:
Código (vbnet) [Seleccionar]


Namespace WindowsApplication1
   using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MySql.Data;
using MySql.Data.MySqlClient;
   public partial class Form1 : Form

   End Class

       private string ConexionBaseDatos = "Database=basedatospruebas;Data Source=localhost;User Id=root;Password=1234";

   Public Form1()

           InitializeComponent();


       private void Form1_Load(object sender, EventArgs e)

           CargarDatos();


       private void CargarDatos()

           string Consulta = "SELECT * FROM tablapruebas";
           MySqlConnection cnn = new MySqlConnection(this.ConexionBaseDatos);
           MySqlDataAdapter mda = new MySqlDataAdapter(Consulta, cnn);
           DataSet ds = new DataSet();
           mda.Fill(ds, "tablapruebas");
           dataGridView1.DataSource = ds;
           dataGridView1.DataMember = "tablapruebas";


       private void InsertarRegistros()

           string Consulta = "INSERT INTO tablapruebas(nombre,telefono) VALUES('" + tNombre.Text  + "','" + tTelefono.Text + "')";
           MySqlConnection cnn = new MySqlConnection(this.ConexionBaseDatos);
           MySqlCommand mc = new MySqlCommand(Consulta, cnn);
           cnn.Open();
           mc.ExecuteNonQuery();
           cnn.Close();
           CargarDatos();


       private void bInsertar_Click(object sender, EventArgs e)

           InsertarRegistros();

End Namespace


PD: Perdonad por el tochopost y por no poner spoilers, no encuentro el botón xD.
PD2: Acabo de darme cuenta que debería haber posteado en "Programación General/.NET" :S

HdM

Buenas.

Efectivamente debe ir en la sección de .NET

Código (vbnet) [Seleccionar]

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        ejecutar.objetos("INSERT INTO 'pet' (name,phone) VALUES ('" + Nombre.Text + "','" + Telefono.Text + "')", "Los datos se han ingresado con exito.", "Error, no se ha podido introducir los datos.")

    End Sub


*La cadena de conexión la tienes bien montada, ya que te conecta al servidor (estás controlando la captura de error de conexión y no te salta el mismo, ¿no?)

*Cuando llamas al sub ejecutar, qué se supone que es objetos.

*En la consulta del insert, estás poniendo el nombre de la tabla a actualizar, entre comillas simples

De todos modos, el ide del VS 2010, te debe mostrar info. de los errores/advertencias detectados.

Saludos.

- Nice to see you again -

Eavesdropping

#2
Se me coló, objetos es algo que intenté hacer para arreglarlo, pero nada. La consulta es así:
Código (vbnet) [Seleccionar]
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

       ejecutar("INSERT INTO 'pet' (name,phone) VALUES ('" + Nombre.Text + "','" + Telefono.Text + "')", "Los datos se han ingresado con exito.", "Error, no se ha podido introducir los datos.")

   End Sub


Si la tabla pet la pongo entre comillas dobles me arroja 3 errores, con las simples no aparece ningún error, inicia el programa y me salta una ventana de error que sale si no se ha podido ingresar datos "Error, no se ha podido introducir los datos.". ¿Que puedo hacer? Sigo constante pero me está empezando a apoderse :(.

Edit: Por favor, muevan el tema a .NET, allí supongo que podrán tratar mejor el problema, lo digo por no abrir 2 post. Gracias y perdonad.

HdM

Buenas.

En la consulta, el nombre de la tabla no debe llevar ni comillas simples, ni dobles.

Saludos.

- Nice to see you again -

Eavesdropping

¡Ohhh! Siempre pringo en cosas así... Muchísimas gracias por tu tiempo Bulld0z3r.