none
Conexão com "Banco de Dados" MySql (!) RRS feed

  • Pergunta

  • Boa noite,

    Após várias pesquisas e não obter a resposta, com a ajuda de um amigo estamos elaborando um software que trabalhe com o banco de dados do MySql através do C#.

    Está divido em três camadas(class).

    DataMySql.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConexaoMySql
    {
        public class DataMySql
        {
            public int id { get; set; }
            public string nome { get; set; }
            public string email { get; set; }
            public string login { get; set; }
            public string senha { get; set; }
        }
    }
    

    ConfigMySql.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data;
    using System.Data.Odbc;
    using ConexaoMySql;
    
    namespace ConexaoMySql
    {
        public class ConfigMySql
        {
            public void incluir(DataMySql Data)
            {
                ConectarMySql objeto = new ConectarMySql();
    
                string MySqlCod = "INSERT INTO tbcadusuario VALUES (null," + "'";
                MySqlCod += Data.nome + "','";
                MySqlCod += Data.email + "','";
                MySqlCod += Data.login + "','";
                MySqlCod += Data.senha + "','";
    
                objeto.executarcommand(MySqlCod);
            }
    
        }
    }

    ConexaoMySql.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data;
    using System.Data.Odbc;
    using ConexaoMySql;
    using System.Windows.Forms;
    
    namespace ConexaoMySql
    {
        public class ConectarMySql
        {
            OdbcConnection connect;
            OdbcCommand command = new OdbcCommand();
    
            public ConectarMySql()
            {
                connect = new OdbcConnection();
                connect.ConnectionString = "Driver={Mysql ODBC 5.1 driver};server=localhost;database=bdzaratech;user=root;password=;";
            }
    
            public void executarcommand(string comandoSql)
            {
                try
                {
                    command.CommandText = comandoSql;
                    command.Connection = connect;
                    connect.Open();
                    command.ExecuteNonQuery();
                    MessageBox.Show("Cadastro realizado com sucesso!");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("O seguinte erro ocorreu: "+ex);
                }
                finally
                {
                    connect.Close();
                    connect.Dispose();
                }
            }
    
    
        }
    }

    E o botão do formCadUsuario.cs para cadastrar o usuário.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using ConexaoMySql;
    
    namespace RadioHelp
    {
        public partial class frmCadUsuario : Form
        {
            public frmCadUsuario()
            {
                InitializeComponent();
            }
    
            private void btCadastrar_Click(object sender, EventArgs e)
            {
                DataMySql _data = new DataMySql();
                _data.nome = txtNome.Text;
                _data.email = txtEmail.Text;
                _data.login = txtUsuario.Text;
                _data.senha = txtSenha.Text;
                ConfigMySql _config = new ConfigMySql();
                _config.incluir(_data);
            }
    
            private void frmCadUsuario_Load(object sender, EventArgs e)
            {
    
            }
        }
    }

    Onde está o erro? Pois quando clico em cadastrar, a seguinte mensagem é retornada;

    ---------------------------
    
    ---------------------------
    O seguinte erro ocorreu: System.Data.Odbc.OdbcException (0x80131937): ERROR [IM002] [Microsoft][ODBC Driver Manager] Nome da fonte de dados não encontrado e nenhum driver padrão especificado
    
       em System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
    
       em System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)
    
       em System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
    
       em System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
    
       em System.Data.ProviderBase.DbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
    
       em System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
    
       em System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
    
       em System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
    
       em System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
    
       em System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
    
       em System.Data.Odbc.OdbcConnection.Open()
    
       em ConexaoMySql.ConectarMySql.executarcommand(String comandoSql) na c:\Users\Guilherme\Documents\Programas\RadioHelp\RadioHelp\ConexaoMySql.cs:linha 30
    ---------------------------
    OK   
    ---------------------------

    Obrigado à todos e desculpe o tamanho da pergunta.

    Att,

    Guilherme Zaramella.

    quarta-feira, 18 de dezembro de 2013 22:00

Todas as Respostas