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:
Retornando dados do Oracle:
Retornando dados do IBM DB2:
Retornando dados do Microsoft SQL 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";
}
}
}
}





