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í:
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 ;)
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
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
Recuerdo mis tiempos en C-Sharp,
string CadenaConexion = "server=.;uid=sa;password=tupassword;database=basededatos";
SqlConnection MiConexion = new SqlConnection(CadenaConexion);
a ver si te sirve este
string cadena="Server=localhost;Uid=root;Database=bd;Port=3306";
MySqlConnection cnn = new MySqlConnection(cadena);
Saludos
;-)gracias x sus aportaciones compañeros resolvieron mi problema ;-)
Hola,
Recuerda, el Close en el finally, sácalo del Try..
Un saludo!
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
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);
}
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.
Casualmente hace unos dias me puse a indagar en el tema mysql y C#. Tuve algunos problemas con el envio de querys pero bueno...
mira si este codigo te puede servir, es el que yo uso para actualizarl os valores de una base de datos
string SQL = "UPDATE Temperatura SET Temperatura.Temp=@temp , Temperatura.STATUS='ON' WHERE Temperatura.index=0 ";
connection.Open();
data.UpdateCommand = new MySqlCommand(SQL, connection);
data.UpdateCommand.Parameters.AddWithValue("@temp", i.ToString());
//data.UpdateCommand.UpdatedRowSource = UpdateRowSource.None;
data.UpdateCommand.ExecuteNonQuery();
//cmd.ExecuteNonQuery();
connection.Close();
private void gdr_Click(object sender, EventArgs e)
{
MySqlConnection conexion = new MySqlConnection();
MySqlCommand cmd = new MySqlCommand();
String cadena;
try
{
cadena = "Server=localhost; uid=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.connection=conexion;
cmd.ExecuteNonQuery();
MessageBox.Show("El Registro se ha Hecho Correctamente", "Registros Exitoso");
}
catch
{
MessageBox.Show("Error al conectar la base de Datos", "Conexion Fallida");
}
finally
{
conexion.Close();
}
}
ak te dejo un link
http://vick90.blogspot.es/i2010-05/
(http://vick90.blogspot.es/i2010-05/)
Saludos