C# MYSQL

BLEMERSOUEU 06/11/2010 12:40:43
#356780
Boa tarde com um problema na hora de executar uma Query alguiem poderia me ajudar.
Ele me retorna o seguinte erro:
connection must be valid and open
InvalidOperationException was unhandled
Por favor me ajudem



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

namespace Sistema_de_Biblioteca
{
public partial class Alunos : Form
{
public Alunos()
{
InitializeComponent();
}

private void Insert_Click(object sender, EventArgs e)
{

bool erro = false;
if(Cod_Aluno.Text != [Ô][Ô])
erro = true;
if(Nome_Aluno.Text != [Ô][Ô])
erro = true;
if(Telefone_Aluno.Text != [Ô][Ô])
erro = true;
if(cod_livro.Text != [Ô][Ô])
erro = true;
if(Txt_turma.Text !=[Ô][Ô])
erro = true;



if (erro==true)
{
//Instancia do mysqlConnection passando a string de conexao
MySqlConnection conn = new MySqlConnection([Ô]Server=localhost;Database=Teste;Uid=root;Pwd=password;[Ô]);
//Command com a instrução SQL
MySqlCommand com = new MySqlCommand([Ô]insert into aluno values([ô][Ô] + Cod_Aluno.Text+[Ô][ô],[ô][Ô]+ Nome_Aluno.Text+[Ô][ô],[ô][Ô]+Telefone_Aluno.Text+[Ô][ô],[ô][Ô]+cod_livro+[Ô][ô],[ô][Ô]+Txt_turma+[Ô][ô][Ô]);

//Abrindo a conexão com o banco
conn.Open();
//Executando o comando SQL e retorna um inteiro com o numero de linhas afetadas (nào usado para select)
com.ExecuteNonQuery();
}
else
{
MessageBox.Show([Ô]Preencha todos os valores[Ô]);
}

ESLEYSANCHES 06/11/2010 12:45:55
#356781
Resposta escolhida
Adicione o seginte:

            if (erro==true)
{
//Instancia do mysqlConnection passando a string de conexao
MySqlConnection conn = new MySqlConnection([Ô]Server=localhost;Database=Teste;Uid=root;Pwd=password;[Ô]);
//Command com a instrução SQL
MySqlCommand com = new MySqlCommand([Ô]insert into aluno values([ô][Ô] + Cod_Aluno.Text+[Ô][ô],[ô][Ô]+ Nome_Aluno.Text+[Ô][ô],[ô][Ô]+Telefone_Aluno.Text+[Ô][ô],[ô][Ô]+cod_livro+[Ô][ô],[ô][Ô]+Txt_turma+[Ô][ô][Ô]);

//Abrindo a conexão com o banco
conn.Open();
//Executando o comando SQL e retorna um inteiro com o numero de linhas afetadas (nào usado para select)
com.Connection = conn;
com.ExecuteNonQuery();
}
else
{
MessageBox.Show([Ô]Preencha todos os valores[Ô]);
}

ESLEYSANCHES 06/11/2010 12:49:46
#356782
Verifique tbm se a conexão é aberta com scesso !!

try
{
conn.Open();
}
catch (Exception Ex)
{ MessageBox.Show([Ô]Erro ao tentar abrir a conexão.

[Ô] + Ex.Message); }



Qualquer problema ou dvida add procure nosso amigo MACORATTI
http://www.macoratti.net/08/09/c_mysql2.htm

Espero qe te ajude!!
Araços !!
BLEMERSOUEU 06/11/2010 12:57:12
#356783
Agora ele me mostra o seguinte erro

Unable to connect to any of the specified MySQL hosts.
ESLEYSANCHES 06/11/2010 12:59:41
#356784
Siginifica que não foipossivel se conectarao servidor, verifique se o MySQL realmente esta funcionando e o nome de usuario e senha que vc esta usando.

Flw abraços !!
BLEMERSOUEU 06/11/2010 13:08:14
#356785
Realmente.
Corrigi
Ai me veio esse erro
You have an error in you SQL syntax/ check the manual that corresponds to your
MySQL server version for the right syntax to user near at line 1

Mais agora pelo que eu entendi e erro na instrucao sql que estou passando
ESLEYSANCHES 06/11/2010 23:01:24
#356819
Sim Sim, erro na instrução faltou fechar o parenteses na instrucao INSERT apos o VALUES ( )
O seu código completo iria ficar assim:

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

namespace Sistema_de_Biblioteca
{
public partial class Alunos : Form
{
public Alunos()
{
InitializeComponent();
}

private void Insert_Click(object sender, EventArgs e)
{

bool erro = false;
if(Cod_Aluno.Text != [Ô][Ô])
erro = true;
if(Nome_Aluno.Text != [Ô][Ô])
erro = true;
if(Telefone_Aluno.Text != [Ô][Ô])
erro = true;
if(cod_livro.Text != [Ô][Ô])
erro = true;
if(Txt_turma.Text !=[Ô][Ô])
erro = true;



if (erro==true)
{
//Instancia do mysqlConnection passando a string de conexao
MySqlConnection conn = new MySqlConnection([Ô]Server=localhost;Database=Teste;Uid=root;Pwd=password;[Ô]);
//Command com a instrução SQL
MySqlCommand com = new MySqlCommand([Ô]insert into aluno values([ô][Ô] + Cod_Aluno.Text+[Ô][ô],[ô][Ô]+ Nome_Aluno.Text+[Ô][ô],[ô][Ô]+Telefone_Aluno.Text+[Ô][ô],[ô][Ô]+cod_livro+[Ô][ô],[ô][Ô]+Txt_turma+[Ô][ô])[Ô]);

//Abrindo a conexão com o banco
try
{
conn.Open();
}
catch (Exception Ex)
{ MessageBox.Show([Ô]Erro ao tentar abrir a conexão.

[Ô] + Ex.Message); }

//Executando o comando SQL e retorna um inteiro com o numero de linhas afetadas (nào usado para select)
com.Connection = conn;
com.ExecuteNonQuery();
}
else
{
MessageBox.Show([Ô]Preencha todos os valores[Ô]);
}
ESLEYSANCHES 14/11/2010 13:09:35
#357435
Amigo não esqueça de encerrar o tópico se sua dúvida foi solucionada !!
ABraços !!!
Tópico encerrado , respostas não são mais permitidas