C# y MySql guardar

Iniciado por Doel_Anwar, 23 Junio 2011, 18:00 PM

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

Doel_Anwar

hola compañeros del foro. Tengo un problema y espero me puedan ayudar porque estoy muy atorado con esto, el problema es el siguiente:
Hice una conexión de visualC# y MySql y al momento de guardar los datos no me guarda, puse un mssagebox que me dice cuando se guardó correctamente en el try y otro que me dice que hay un error al conectarme con la BD en el catch y este último es el que me arroja.
el codigo es así:
Código (csharp) [Seleccionar]
       private void gdr_Click(object sender, EventArgs e)
       {
           MySqlConnection conexion = new MySqlConnection();
           MySqlCommand cmd = new MySqlCommand();
           String cadena;
           try
           {
               cadena = "Server=localhost; user id=root; Database=pbp";
               conexion.ConnectionString = cadena;
               conexion.Open();
               cmd.CommandText = "insert into recep_docs (Edad,APaterno,AMaterno,Nombre,Peticionario,Calle,Colonia,Localidad,Municipio,Telefono,Fecha,Observaciones)Values('" + edad.Text + "','" + apaterno.Text + "','" + amaterno.Text + "','" + nombre.Text + "','" + petic.Text + "','" + calle.Text + "','" + col.Text + "','" + local.Text + "','" + muni.Text + "','" + tel.Text + "','" + fecha.Text + "','" + observa.Text + "')";
               cmd.ExecuteNonQuery();
               conexion.Close();
               MessageBox.Show("El Registro se ha Hecho Correctamente", "Registros Exitoso");

           }
           catch
           {
               MessageBox.Show("Error al conectar la base de Datos", "Conexion Fallida");

           }
       }

se les agradece mucho cualquier aportación y de antemano...
muchas gracias ;)

chelita

hola yo tambien tengo algo parecido con c# y sql pero lo mio es con la conexion a sql.

¿a ti no te aparece un mensaje de que la conexion esta cerrrada al momento de ejecutar el programa?

por que si es eso tendrias que ver las propiedades o herramientas de mysql para las conexiones

Doel_Anwar

#2
no de hecho el programa me corre bien, la cuestión es que al momento depulsar el botón guardar (gdr en el código) me aparece el message box del catch, lo que quiere decir que hay un error al hacer la conexión sin embargo no encuentro cual pueda ser :-[...
y muchas gracias por tu aportación

Shell Root

Recuerdo mis tiempos en C-Sharp,
Código (csharp) [Seleccionar]
string CadenaConexion = "server=.;uid=sa;password=tupassword;database=basededatos";
SqlConnection MiConexion = new SqlConnection(CadenaConexion);
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

DaNuK

a ver si te sirve este
Código (csharp) [Seleccionar]

string cadena="Server=localhost;Uid=root;Database=bd;Port=3306";
MySqlConnection cnn = new MySqlConnection(cadena);


Saludos

<a href ="http://programacionrapido.blogspot.com">Programacion .Net</a>

Doel_Anwar

 ;-)gracias x sus aportaciones compañeros resolvieron mi problema  ;-)

[D4N93R]

Hola,

Recuerda, el Close en el finally, sácalo del Try..

Un saludo!

Doel_Anwar

oye pues resulta que la conexion ya me la hace muy bien pro no me guarda datos en la base no se cual sea el problema ya sake el close del try. Si me pudieras ayudar serias de muxa ayuda

Devilboy.Devil

#8
Tengo un programa que hice hace tiempo, agrega el nombre y apellido a mysql.


Clase 1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
using System.Windows.Forms;

namespace Insert
{
   public class Prueba
   {
       public void Consulta(string conexion, string consulta, ToolStripProgressBar barra,ToolStripStatusLabel etiketa)
       {
           MySqlConnection conn;
           MySqlCommand com;

           try
           {
               conn = new MySqlConnection(conexion);
               conn.Open();

           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.Message);
               return;
               
           }


           try
           {
               com = new MySqlCommand(consulta, conn);
               
               
               if (Convert.ToBoolean(com.ExecuteNonQuery()))
               {

                   barra.Minimum = 0;
                   barra.Maximum = 100;
                   barra.Value = 100;
                   etiketa.Text = "Cargado";
                   MessageBox.Show("Se han Ingresado los datos");
                   


               }
               else
               {
                   etiketa.Text = "esperando";
                   MessageBox.Show("Error");

               }
           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.Message);

               return;
           }
           finally
           {                
               conn.Close();
           }
       }
   }
}



y para usarlo agregas dos textbox y un boton para aceptar

en el evento click del boton agregas lo sig:


       private void button1_Click(object sender, EventArgs e)
       {
           Prueba obj = new Prueba();
            string nombre, apellido;
           nombre = textBox1.Text;
           apellido = textBox2.Text;
           string conexion = "server=localhost;uid=root;pwd=12345;database=c#";
           string query = "insert into Alumnos (nombre,apellido) values('"+nombre+"','"+apellido+"');";



           obj.Consulta(conexion, query,toolStripProgressBar1,toolStripStatusLabel1);

       }

.::IT::.

#9
Pues a simple vista veo que estas usando MySqlCommand sin asignarle el MySqlConnection deberías inicializar MySqlCommand de la siguiente manera

MySqlCommand Cmd=new MySqlCommand("query",myMySqlConnection);

y luego ejecutar

Cmd.ExecuteNonQuery();

y claro previamente la conexión debe estar abierta.
Simplemente .::IT::.