Na linguagem de programação C# podemos utilizar a instrução ExecuteNonQuery para executar uma instrução SQL estática e retornar os resultados produzidos.
Visual Studio
Crie um design como na figura abaixo, utilizando 3 Panels, 7 Labels, 6 TextBox e 5 Buttons:
Exemplo:
No programa abaixo utilizamos 3 drivers ADO.NET para criar uma query para executar as quatro operações básicas sobre diferentes bancos de dados.
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 DACampos
{
public partial class Campos : Form
{
// Declara componentes de conexão
private static OracleConnection connORA; // ODAC 12c
private static DB2Connection connDB2; // IBM Data Server Provider
private static SqlConnection connMSSQL; // ADO .NET
// Declara variável do banco de dados
private static string DBconexao;
public Campos()
{
InitializeComponent();
}
// Cria método de conexão
public void conectarDB(string banco)
{
DBconexao = banco;
if (banco == "oracle")
{
try
{
// String de Conexao
string connectionString =
// Usuario
"User Id=daberto"+
// Senha
";Password=p@55w0rd" +
// TNSnames
";Data Source=XE";
//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());
}
}
if (banco == "db2")
{
try
{
// String de Conexao
string connectionString =
// Servidor
"Server=localhost" +
// Banco de dados
";Database=DEVA" +
// Usuario
";UID=db2admin" +
// Senha
";PWD=p@55w0rd" +
// Timeout
";Connect Timeout=40";
//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());
}
}
if (banco == "mssql")
{
try
{
// String de Conexao
string connectionString =
// Servidor
"Data Source=localhost" +
// Banco de dados
";Initial Catalog=DevAberto" +
// Usuario
";User ID =devaberto" +
// Senha
";Password=p@55w0rd" +
// Timeout
";Connect Timeout=40";
//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());
}
}
}
// Evento de clique do botão
private void button1_Click(object sender, EventArgs e)
{
// Cria instancia do objeto
Campos campos = new Campos();
// A variável abaixo:
// Define banco de dados
// oracle = Oracle Database
// db2 = IBM DB2 Database
// mssql = Microsoft SQL Server
campos.conectarDB("mssql");
// Define instrução SQL
string sql = "Select * From FUNCIONARIOS Where ID_FUNCIONARIO = " + textBox6.Text;
// Usando um procedimento de conexão para o driver especifico.
// Oracle - ODAC
if (DBconexao == "oracle")
{
label1.Text = "Database - fields : " + DBconexao;
OracleCommand oracmd = new OracleCommand(sql, connORA);
OracleDataReader orareader = oracmd.ExecuteReader();
if (orareader.HasRows)
{
while (orareader.Read())
{
textBox1.Text = Convert.ToString(orareader.GetInt32(0));
textBox2.Text = orareader.GetString(1);
textBox3.Text = orareader.GetString(2);
textBox4.Text = orareader.GetString(3);
textBox5.Text = Convert.ToString(orareader.GetDecimal(4));
}
}
}
// IBM Data Server Provider
if (DBconexao == "db2")
{
label1.Text = "Database - fields : " + DBconexao;
DB2Command db2cmd = new DB2Command(sql);
db2cmd.Connection = connDB2;
DB2DataReader db2reader = db2cmd.ExecuteReader();
if (db2reader.HasRows)
{
while(db2reader.Read())
{
textBox1.Text = Convert.ToString(db2reader.GetInt32(0));
textBox2.Text = db2reader.GetString(1);
textBox3.Text = db2reader.GetString(2);
textBox4.Text = db2reader.GetString(3);
textBox5.Text = Convert.ToString(db2reader.GetDecimal(4));
}
}
}
// microsoft ADO.NET
if (DBconexao == "mssql")
{
label1.Text = "Database - fields : " + DBconexao;
SqlCommand mssqlcmd = new SqlCommand(sql);
mssqlcmd.Connection = connMSSQL;
SqlDataReader mssqlreader = mssqlcmd.ExecuteReader();
if (mssqlreader.HasRows)
{
while (mssqlreader.Read())
{
textBox1.Text = Convert.ToString(mssqlreader.GetInt32(0));
textBox2.Text = mssqlreader.GetString(1);
textBox3.Text = mssqlreader.GetString(2);
textBox4.Text = mssqlreader.GetString(3);
textBox5.Text = Convert.ToString(mssqlreader.GetDecimal(4));
}
}
// Aqui nota-se uma diferença entre os drivers:
// Microsoft, Oracle e IBM
// ADO.NET É necessário fechar o DataReader antes de executar um sqlcommand.
// ODAC não é necessário.
// IBM DATA Server não é necessário.
// Enquanto o DataReader está em uso,
// o Connection associado está ocupado servindo o DataReader.
// Enquanto estiver neste estado,
// nenhuma outra operação pode ser realizada sobre o Connection além de fechá-lo.
// Os drivers da Oracle e IBM não possuem esta arquitetura e não ocupam a conexão
// permitindo ainda múltiplas operações sobre ela.
mssqlreader.Close();
}
}
private static void executaSQL(string sql)
{
// Declara comandos em diferentes drivers
OracleCommand oracmd;
DB2Command db2cmd;
SqlCommand sqlcmd;
// Define banco de dados e executa comandos SQL
if (DBconexao == "oracle")
{
oracmd = new OracleCommand();
oracmd.Connection = connORA;
oracmd.CommandText = sql;
try
{
oracmd.ExecuteNonQuery();
MessageBox.Show("Ação requerida executada com sucesso!");
}
catch (Exception ex)
{
// Mostra menssagem de erro
MessageBox.Show(ex.ToString());
}
}
if (DBconexao == "db2")
{
db2cmd = new DB2Command();
db2cmd.Connection = connDB2;
db2cmd.CommandText = sql;
try
{
db2cmd.ExecuteNonQuery();
MessageBox.Show("Ação requerida executada com sucesso!");
}
catch (Exception ex)
{
// Mostra menssagem de erro
MessageBox.Show(ex.ToString());
}
}
if (DBconexao == "mssql")
{
sqlcmd = new SqlCommand();
sqlcmd.Connection = connMSSQL;
sqlcmd.CommandText = sql;
try
{
sqlcmd.ExecuteNonQuery();
MessageBox.Show("Ação requerida executada com sucesso!");
}
catch (Exception ex)
{
// Mostra menssagem de erro
MessageBox.Show(ex.ToString());
}
}
}
private static String trocaDecimal(string conteudo)
{
// Substitui decimal na manipulação de SQL
string troca = conteudo.Replace(",", ".");
return troca;
}
// Novo registro
private void button2_Click(object sender, EventArgs e)
{
// Limpa componentes
textBox1.Text = null;
textBox2.Text = null;
textBox3.Text = null;
textBox4.Text = null;
textBox5.Text = null;
// Define foco
textBox1.Focus();
}
// Insere registro
private void button3_Click(object sender, EventArgs e)
{
// Cria instrução SQL
string sql = "Insert into FUNCIONARIOS values (" +
textBox1.Text + ", \'" +
textBox2.Text + "\', \'" +
textBox3.Text + "\', \'" +
textBox4.Text + "\', " +
trocaDecimal(textBox5.Text) + ")";
// Executa sql
executaSQL(sql);
}
// Altera registro
private void button4_Click(object sender, EventArgs e)
{
// Cria instrução SQL
string sql = "Update FUNCIONARIOS SET " +
"ID_FUNCIONARIO = " + textBox1.Text + ", " +
"NOME = \'" + textBox2.Text + "\', " +
"SOBRENOME = \'" + textBox3.Text + "\', " +
"CARGO = \'" + textBox4.Text + "\', " +
"SALARIO = " + trocaDecimal(textBox5.Text) + " " +
"Where ID_FUNCIONARIO = " + textBox1.Text;
// Executa sql
executaSQL(sql);
}
// Deleta registro
private void button5_Click(object sender, EventArgs e)
{
// Cria instrução SQL
string sql = "Delete from FUNCIONARIOS Where ID_FUNCIONARIO = " + textBox1.Text;
// Executa sql
executaSQL(sql);
// Executa clique no botão
button2.PerformClick();
}
}
}



