Sunteți pe pagina 1din 8

http://www.postgresql.

org/ftp/odbc/versions/msi/

1
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 System.Data.Odbc;

namespace prjSimpaticiiPractica
{
publicpartialclassForm1 : Form
{

OdbcConnection conexiune;
DataSet dsDate;
int nrTotalInregistrari;
int indexInregistrareCurenta;
string tipOperatiune;

public Form1()
{
InitializeComponent();
}

privatevoid deschideConexiunea()
{
try
{
//initializez o conexiune in mod explicit
conexiune = newOdbcConnection();

//stabilesc stringul de conectare


conexiune.ConnectionString = "Driver={PostgreSQL
ANSI};database=bazaADL;server=localhost;port=5432;uid=postgres;sslmode=disable;readonly=0
;protocol=7.4;fakeoidindex=0;showoidcolumn=0;rowversioning=0;showsystemtables=0;fetch=100
;socket=4096;unknownsizes=0;maxvarcharsize=255;maxlongvarcharsize=8190;debug=0;commlog=0;
optimizer=0;ksqo=1;usedeclarefetch=0;textaslongvarchar=1;unknownsaslongvarchar=0;boolsasc
har=1;parse=0;cancelasfreestmt=0;extrasystableprefixes=dd_;lfconversion=1;updatablecursor
s=1;disallowpremature=0;trueisminus1=0;bi=0;byteaaslongvarbinary=0;useserversideprepare=0
;lowercaseidentifier=0;gssauthusegss=0;xaopt=1;pwd=postgres";
//deschid conexiunea
conexiune.Open();

// MessageBox.Show("S-a deschis conexiunea!!!!");

//incercam sa aducem date din baza de date


//prin intermediul unei comenzi
OdbcCommand comanda;
comanda = newOdbcCommand();
comanda.Connection = conexiune;
comanda.CommandText = "SELECT * FROM coduri_postale";

2
//definesc cititor (reader)
OdbcDataReader cititor;
cititor = comanda.ExecuteReader();

//definim o tabela "locala"


DataTable tblLocalitati;
tblLocalitati = newDataTable("LOCALITATI");
tblLocalitati.Load(cititor);

// MessageBox.Show("Am obtinut tabela locala");

//construiesc un set de date local pe baza tabelei obtinute anterior


dsDate = newDataSet();
dsDate.Tables.Add(tblLocalitati);

//afisam diverse informatii din tabela


nrTotalInregistrari = dsDate.Tables["LOCALITATI"].Rows.Count;

//stabilesc indexul inregistrarii curente


this.indexInregistrareCurenta = 0;
/*
MessageBox.Show("Numar localitati = " + nrTotalInregistrari);
//afisam inregistrarile din tabela
for (int i = 0; i < nrTotalInregistrari; i++)
{
string codpostal =
dsDate.Tables["LOCALITATI"].Rows[i].ItemArray[0].ToString();
string localitate =
dsDate.Tables["LOCALITATI"].Rows[i].ItemArray[1].ToString();
string judet =
dsDate.Tables["LOCALITATI"].Rows[i].ItemArray[2].ToString();
MessageBox.Show("Localitatea nr. " + i + " " + codpostal + " " +
localitate + " " + judet);
}

MessageBox.Show("Acestea au fost toate localitatile");


conexiune.Close();
*/

}
catch (OdbcException eroare)
{
MessageBox.Show("A aparut eroarea nr. " + eroare.ErrorCode.ToString() + " cu mesajul " +
eroare.Message.ToString());
if (conexiune.State == ConnectionState.Open)
conexiune.Close();
}
}

privatevoid populeazaJudete()
{
OdbcCommand comanda;
comanda = newOdbcCommand();
comanda.Connection = conexiune;
comanda.CommandText = "SELECT * FROM judete ORDER BY judet";

3
//definesc cititor (reader)
OdbcDataReader cititor;
cititor = comanda.ExecuteReader();

//definim o tabela "locala"


DataTable tblJudete;
tblJudete = newDataTable("JUDETE");
tblJudete.Load(cititor);

// MessageBox.Show("Am obtinut tabela locala");

//construiesc un set de date local pe baza tabelei obtinute anterior


// dsDate = new DataSet();
dsDate.Tables.Add(tblJudete);

//incerc sa populez combobox-ul


cboJudete.DataSource = dsDate.Tables["JUDETE"];
cboJudete.DisplayMember = "judet";
cboJudete.ValueMember = "jud";
}

privatevoid Form1_Load(object sender, EventArgs e)


{
//invoc procedura de deschidere a conexiunii
this.deschideConexiunea();
this.afisareInregistrareCurenta(indexInregistrareCurenta);
this.dezactiveazaCaseteText();
btnSalvare.Visible = false;
btnAnulare.Visible = false;

populeazaJudete();

privatevoid afisareInregistrareCurenta(int nrInregistrare)


{
//aceasta procedura populeaza casetele de text de pe formular
//cu valorile de pe inregistrarea curenta din setul de date
txtCodPostal.Text =
dsDate.Tables["LOCALITATI"].Rows[nrInregistrare].ItemArray[0].ToString();
txtLocalitate.Text =
dsDate.Tables["LOCALITATI"].Rows[nrInregistrare].ItemArray[1].ToString();
txtJudet.Text =
dsDate.Tables["LOCALITATI"].Rows[nrInregistrare].ItemArray[2].ToString();
}

privatevoid btnUrmator_Click(object sender, EventArgs e)


{
//afisez urmatoarea inregistrare
if(indexInregistrareCurenta < nrTotalInregistrari-1)
indexInregistrareCurenta++;

afisareInregistrareCurenta(indexInregistrareCurenta);
}

privatevoid btnAnterior_Click(object sender, EventArgs e)


{
//afisez precedenta inregistrare

4
if (indexInregistrareCurenta > 0)
indexInregistrareCurenta--;

afisareInregistrareCurenta(indexInregistrareCurenta);
}

privatevoid btnPrimul_Click(object sender, EventArgs e)


{
indexInregistrareCurenta = 0;
afisareInregistrareCurenta(indexInregistrareCurenta);
}

privatevoid btnUltim_Click(object sender, EventArgs e)


{
indexInregistrareCurenta = nrTotalInregistrari-1;
afisareInregistrareCurenta(indexInregistrareCurenta);
}

privatevoid dezactiveazaCaseteText()
{
txtCodPostal.Enabled = false;
txtLocalitate.Enabled = false;
txtJudet.Enabled = false;
}

privatevoid activeazaCaseteText()
{
txtCodPostal.Enabled = true;
txtLocalitate.Enabled = true;
txtJudet.Enabled = true;
}

privatevoid btnAdauga_Click(object sender, EventArgs e)


{
tipOperatiune = "adaugare";
//activez casetele de text pentru ca utilizatorul
//sa poata introduce o noua localitate
activeazaCaseteText();
txtCodPostal.Text = "";
txtLocalitate.Text = "";
txtJudet.Text = "";
txtCodPostal.Focus();

btnAdauga.Visible = false;
btnSalvare.Visible = true;
btnAnulare.Visible = true;
btnStergere.Visible = false;
dezactiveazaNavigare();
txtJudet.Visible = false;
cboJudete.Visible = true;
btnModificare.Visible = false;
}

privatevoid dezactiveazaNavigare()
{
btnAnterior.Visible = false;
btnUrmator.Visible = false;
btnPrimul.Visible = false;

5
btnUltim.Visible = false;
}

privatevoid activeazaNavigare()
{
btnAnterior.Visible = true;
btnUrmator.Visible = true;
btnPrimul.Visible = true;
btnUltim.Visible = true;
}

privatevoid btnSalvare_Click(object sender, EventArgs e)


{
if (tipOperatiune == "adaugare")
{
try
{
//inserez in baza de date inregistrarea curenta
OdbcCommand comanda = newOdbcCommand();
comanda.CommandText = "INSERT INTO coduri_postale VALUES(?,?,?)";
comanda.Connection = conexiune;

//stabilim valorile parametrilor in functie de ce a introdus utilizatorul


comanda.Parameters.AddWithValue("codpost",
txtCodPostal.Text.ToString());
comanda.Parameters.AddWithValue("loc",
txtLocalitate.Text.ToString());
comanda.Parameters.AddWithValue("jud",
cboJudete.SelectedValue.ToString());

comanda.ExecuteNonQuery();

MessageBox.Show("Localitatea a fost adaugata in baza de date!");

activeazaNavigare();
dezactiveazaCaseteText();
btnAdauga.Visible = true;
btnSalvare.Visible = false;
btnAnulare.Visible = false;
btnStergere.Visible = true;
txtJudet.Visible = true;
cboJudete.Visible = false;
btnModificare.Visible = true;
deschideConexiunea();
afisareInregistrareCurenta(indexInregistrareCurenta);
}
catch (OdbcException eroare)
{
MessageBox.Show("A aparut eroarea nr. " + eroare.ErrorCode.ToString() + " cu mesajul " +
eroare.Message.ToString());

}
}

if (tipOperatiune == "modificare")
{
try
{

6
OdbcCommand comanda = newOdbcCommand();
comanda.Connection = conexiune;
comanda.CommandText = "UPDATE coduri_postale SET loc=?,jud=? WHERE
codpost=?";
comanda.Parameters.AddWithValue("loc",
txtLocalitate.Text.ToString());
comanda.Parameters.AddWithValue("jud", txtJudet.Text.ToString());
comanda.Parameters.AddWithValue("codpost",
txtCodPostal.Text.ToString());

comanda.ExecuteNonQuery();
MessageBox.Show("Am modificat localitatea");

activeazaNavigare();
dezactiveazaCaseteText();
btnAdauga.Visible = true;
btnSalvare.Visible = false;
btnAnulare.Visible = false;
btnStergere.Visible = true;
btnModificare.Visible = true;
}
catch (OdbcException eroare)
{
MessageBox.Show("A aparut eroarea nr. " + eroare.ErrorCode.ToString() + " cu mesajul " +
eroare.Message.ToString());
}

}
}

privatevoid btnAnulare_Click(object sender, EventArgs e)


{
activeazaNavigare();
dezactiveazaCaseteText();
btnAnulare.Visible = false;
btnSalvare.Visible = false;
btnAdauga.Visible = true;
btnStergere.Visible = true;
btnModificare.Visible = true;
afisareInregistrareCurenta(indexInregistrareCurenta);
txtJudet.Visible = true;
cboJudete.Visible = false;
}

privatevoid btnStergere_Click(object sender, EventArgs e)


{
//incerc stergerea, dupa confirmarea de la utilizator
if (MessageBox.Show("Sigur stergi localitatea curenta?", "Decizie",
MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
{
try
{
OdbcCommand comanda = newOdbcCommand();
comanda.CommandText = "DELETE FROM coduri_postale WHERE codpost=?";
comanda.Parameters.AddWithValue("codpost",
txtCodPostal.Text.ToString());
comanda.Connection = conexiune;
comanda.ExecuteNonQuery();

7
MessageBox.Show("Am sters localitatea");
deschideConexiunea();
afisareInregistrareCurenta(indexInregistrareCurenta);
}
catch (OdbcException eroare)
{
MessageBox.Show("A aparut eroarea nr. " + eroare.ErrorCode.ToString() + " cu mesajul " +
eroare.Message.ToString());
}
}
}

privatevoid btnModificare_Click(object sender, EventArgs e)


{
tipOperatiune = "modificare";
dezactiveazaNavigare();
activeazaCaseteText();
btnAdauga.Visible = false;
btnStergere.Visible = false;
btnModificare.Visible = false;

btnSalvare.Visible = true;
btnAnulare.Visible = true;
txtCodPostal.Enabled = false;
}

privatevoid cboJudete_SelectedIndexChanged(object sender, EventArgs e)


{
try
{
// MessageBox.Show("Ati selectat un nou judet " + cboJudete.SelectedValue.ToString());
}
catch (Exception eroare)
{
}
}
}
}

S-ar putea să vă placă și