Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Noite, estou começando a aprender programação c# e quero utilizar o mysql como conexão.
Criei a classe e adicionei a referencia e acredito que está certo, porém quando crio o formulário e abro o botão para inserir o código não sei como devo fazer para capturar o valor do input e chamar o Insert() em um formulário para ele executar a query.
Obrigado
Atenciosamente
cód da class:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data.MySqlClient;
using System.Windows.Forms;
namespace CadastrodeDVD
{
class clsDados
{
private MySqlConnection connection;
private string server;
private string database;
private string uid;
private string password;
//Constructor
public clsDados()
{
Initialize();
}
//Initialize values
private void Initialize()
{
server = "localhost";
database = "dvds";
uid = "root";
password = "123";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
connection = new MySqlConnection(connectionString);
}
//open connection to database
private bool OpenConnection()
{
try
{
connection.Open();
return true;
}
catch (MySqlException ex)
{
switch (ex.Number)
{
case 0:
MessageBox.Show("Não foi possível se conectar no banco de dados. Contate o administrador");
break;
case 1045:
MessageBox.Show("Usuário e/ou senha inválido, por favor tente novamente");
break;
}
return false;
}
}
//Close connection
private bool CloseConnection()
{
try
{
connection.Close();
return true;
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
return false;
}
}
//Insert statement
public void Insert()
{
string query = "INSERT INTO genero (descricao) VALUES('?descricao')";
//open connection
if (this.OpenConnection() == true)
{
//create command and assign the query and connection from the constructor
MySqlCommand cmd = new MySqlCommand(query, connection);
//Execute command
cmd.ExecuteNonQuery();
//close connection
this.CloseConnection();
}
}
}
}
cód do botão:
private void button1_Click(object sender, EventArgs e)
{
clsDados conectar = new clsDados();
}legal, muito obrigado.
Gostei dessa ideia que você disse, na verdade queria fazer desse jeito, então se eu criar o método desse jeito q vc disse como eu chamo a query? assim? :
private void button1_Click(object sender, EventArgs e) {
clsDados conectar = new clsDados();
conectar.OpenConnection();
conectar.Insert("INSERT INTO genero (descricao) VALUES('?descricao')");
conectar.CloseConnection();
}
daí na classe na opção string query = SQL; eu nem coloco a query só deixo assim mesmo né?
Obrigado
Atenciosamente
Heitor
cara consegui, você pode confirmar se está certo?
a class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data.MySqlClient;
using System.Windows.Forms;
namespace CadastrodeDVD
{
class clsDados
{
private MySqlConnection connection;
private string server;
private string database;
private string uid;
private string password;
//Constructor
public clsDados()
{
Initialize();
}
//Initialize values
public void Initialize()
{
server = "localhost";
database = "dvds";
uid = "root";
password = "jahehbom086689";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" +
database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
connection = new MySqlConnection(connectionString);
}
//open connection to database
public bool OpenConnection()
{
try
{
connection.Open();
return true;
}
catch (MySqlException ex)
{
switch (ex.Number)
{
case 0:
MessageBox.Show("Não foi possível se conectar no banco de dados. Contate o administrador");
break;
case 1045:
MessageBox.Show("Usuário e/ou senha inválido, por favor tente novamente");
break;
}
return false;
}
}
//Close connection
public bool CloseConnection()
{
try
{
connection.Close();
return true;
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
return false;
}
}
//Insert statement
public void Insert(String SQL)
{
string query = SQL;
//open connection
if (this.OpenConnection() == true)
{
//create command and assign the query and connection from the constructor
MySqlCommand cmd = new MySqlCommand(query, connection);
//Execute command
cmd.ExecuteNonQuery();
//close connection
this.CloseConnection();
}
}
o botão:
private void button1_Click(object sender, EventArgs e)
{
clsDados conectar = new clsDados();
conectar.Insert("INSERT INTO genero (descricao) VALUES('"+txtInserir.Text+"')");
conectar.CloseConnection();
}
no botão eu tirei conectar.OpenConnection(); pq dava erro dizendo q já estava aberto, isso pq no método insert() já tinha o OpenConnection será?
mesmo assim obrigado
consegui
ABRAÇO
Isso mesmo, o botão é que estava abrindo a conexão, então você pode tirar do método insert, deixar só no botão que não vai dar mais erros.
Cara, seu botão não faz nada...
Para você conectar você precisa instanciar a classe e chamar os métodos:
private void button1_Click(object sender, EventArgs e) {
Assim ele deverá funcionar.Acho legal se você colocar no método insert um parâmetro que permita que você mude a query, para não ficar sempre na mesma:
public void Insert(String SQL) {
string query = SQL;
//open connection
if (this.OpenConnection() == true) {
//create command and assign the query and connection from the constructor
MySqlCommand cmd = new MySqlCommand(query, connection);
//Execute command
cmd.ExecuteNonQuery();
//close connection