Retornando Dados Em Um DataGridView – ADO.NET – 3 Banco de Dados – Uma Aplicação – Oracle -IBM DB2 – MSSQL Server – C#

Publicado: 15 de maio de 2014 em C#

Com a linguagem de programação C# você pode escrever um software que será apto a se conectar a qualquer banco de dados que possua um driver ADO.NET, por exemplo você pode se conectar ao Microsoft SQL Server usando o namespace System.data.SqlClient, e também pode se conectar ao Oracle usando o namespace System.Data.OracleClient, desde que você faça uma referencia em projeto ao assembler System.Data.OracleClient.dll.

Você pode ver mais exemplos de conexões ADO.NET:

http://msdn.microsoft.com/pt-br/library/dw70f090(v=vs.110).aspx

Porem os drivers ADO.NET fazem parte do componente de dados do Windows chamado MDAC e não podem acessar todos os recursos dos bancos de dados Oracle e IBM DB2, então se o seu software pretende usar recursos avançados de segurança entre outros e se seu servidor estiver em uma plataforma não Microsoft é recomendado que você utilize os métodos nativos de conexão para cada um dos banco de dados que você utilizar. Por exemplo, para Oracle você pode usar o ODAC 12c, e para IBM DB2 você pode usar o IBM Data Server Provider for .NET, você encontra um walkthrough de como instalar e utilizar os dois componentes aqui neste site na categoria SQL e C#.

DataGridView

Exibe dados em uma grade personalizável.

DataTable

Representa uma tabela de dados na memória.

Conectando ao Oracle, IBM DB2 e Microsoft SQL Server a partir da mesma Aplicação:

Para efetuar as conexões com os diferentes bancos de dados você precisa primeiro configurar seu projeto com os assemblers ADO.NET  necessários e depois você pode criar um design com 3 componentes RadioButton, um componente Button e um componente DataGridView use a figura abaixo para referencia:

ADO.NET Assemblers

ADO.NET Assemblers

Retornando dados do Oracle:

Oracle

Oracle

Retornando dados do IBM DB2:

IBM DB2

IBM DB2

Retornando dados do Microsoft SQL Server:

MSSQL Server

MSSQL Server

Exemplo:

Neste exemplo criamos três tipos de conexões diferentes, uma para cada banco de dados e utilizamos um set de dados comum para retornar dados dos três banco de dados utilizados no programa.

C#

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 System.Data.SqlClient;
using Oracle.DataAccess.Client;
using IBM.Data.DB2; 

namespace Acesso
{
    public partial class Dados : Form
    {
        private static OracleConnection connORA; // ODAC 12c
        private static DB2Connection connDB2;   // IBM Data Server Provider
        private static SqlConnection connMSSQL; // ADO .NET

        DataTable dataTable;

        string sql;
        static string bancodedados;

        public Dados()
        {
            InitializeComponent();
        }

        // Cria métodos de conexão
        public void conexaoODAC(string Username, string Password, string Datasource)
        {
            try
            {
                // String de Conexao
                string connectionString =

                    // Usuario
                    "User Id=" + Username +

                    // Senha
                    ";Password=" + Password +

                    // TNSnames
                    ";Data Source=" + Datasource;

                //Conecta ao datasource usando a conexão Oracle
                 connORA = new OracleConnection(connectionString);

                //Abre a conexão com o banco de dados
                connORA.Open();

            }
            // Retorna erro
            catch (Exception ex)
            {
                // Mostra menssagem de erro
                MessageBox.Show(ex.ToString());

            }
        }

        void conexaoDB2(string Server, string Database,
                                    string Username, string Password, string Timeout)
        {
            try
            {
                // String de Conexao
                string connectionString =

                    // Servidor
                    "Server=" + Server +

                    // Banco de dados
                    ";Database=" + Database +

                    // Usuario
                    ";UID=" + Username +

                    // Senha
                    ";PWD=" + Password +

                    // Timeout
                    ";Connect Timeout=" + Timeout;

                //Conecta ao datasource usando a conexão DB2
                connDB2 = new DB2Connection(connectionString);

                //Abre a conexão com o banco de dados
                connDB2.Open();                

            }
            // Retorna erro
            catch (Exception ex)
            {
                // Mostra menssagem de erro
                MessageBox.Show(ex.ToString());

            }
        }

         public void conexaoMSSQL(string Server, string Database,
                                     string Username, string Password, string Timeout)
         {
             try
             {
                 // String de Conexao
                 string connectionString =

                     // Servidor
                     "Data Source=" + Server +

                     // Banco de dados
                     ";Initial Catalog=" + Database +

                     // Usuario
                     ";User ID =" + Username +

                     // Senha
                     ";Password=" + Password +

                     // Timeout
                     ";Connect Timeout=" + Timeout;

                 //Conecta ao datasource usando a conexão Padrão
                 connMSSQL = new SqlConnection(connectionString);

                 //Abre a conexão com o banco de dados
                 connMSSQL.Open();

             }
             // Retorna erro
             catch (Exception ex)
             {
                 // Mostra menssagem de erro
                 MessageBox.Show(ex.ToString());

             }
         }

        // Retorna um set de dados
         public  DataTable retornaTabela(string sql)
         {
             Dados acesso = new Dados();

             if (bancodedados == "oracle")
             {
                 acesso.conexaoODAC("daberto", "p@55w0rd", "XE");

                 OracleCommand oracmd = new OracleCommand(sql, connORA);
                 OracleDataReader orareader = oracmd.ExecuteReader();
                 dataTable = new DataTable();
                 dataTable.Load(orareader);
             }

             if (bancodedados == "db2")
             {
                 acesso.conexaoDB2("localhost", "DEVA", "db2admin", "p@55w0rd", "40");

                 DB2Command db2cmd = new DB2Command(sql);
                 db2cmd.Connection = connDB2;
                 DB2DataReader db2reader = db2cmd.ExecuteReader();
                 dataTable = new DataTable();
                 dataTable.Load(db2reader);                

             }

             if (bancodedados == "mssql")
             {
                 acesso.conexaoMSSQL("localhost", "DevAberto", "devaberto", "p@55w0rd", "");

                 SqlCommand mssqlcmd = new SqlCommand(sql);
                 mssqlcmd.Connection = connMSSQL;
                 SqlDataReader mssqlreader = mssqlcmd.ExecuteReader();
                 dataTable = new DataTable();
                 dataTable.Load(mssqlreader);

             }

             return  dataTable;
         }

        // configura programa
        private void Form1_Shown(object sender, EventArgs e)
        {
            radioButton1.Checked = true;
            bancodedados = "oracle";
        }

        // Conecta dados
        private void button1_Click(object sender, EventArgs e)
        {
            Dados dados = new Dados(); 

            if (bancodedados == "db2")
            {
                dataGridView1.DataSource = dados.retornaTabela("Select * from DA.\"Blog\"");
            }
            else
            {
                dataGridView1.DataSource = dados.retornaTabela("Select * from Blog");
            }
        }

        // Seleciona banco de dados Oracle
        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton1.Checked)
            {
                bancodedados = "oracle";
            }

        }

        // Seleciona banco de dados IBM DB2
        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton2.Checked)
            {
                bancodedados = "db2";
            }
        }

        // Seleciona banco de dados MSSQL Server
        private void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton3.Checked)
            {
                bancodedados = "mssql";
            }
        }
    }
}
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s