You are on page 1of 4

Ажурирање базе података

Базе података се могу ажурирати, односно вредности се могу додавати, затим


брисати, али и мењати вредности.

Унос података у базу


Унос података у базу се врши SQL наредбом INSERT.

Уз претходно креирану конекцију, команда за унос података у базу би изгледала:

Komanda.CommandText = string.Format("INSERT INTO


Tabela1(IDradnika,Ime,Plata,Dodaci,Polozaj,Davalac_krvi)
VALUES(@IDradnika, @Ime, @Plata, @Dodaci, @Polozaj, @Davalac)");

Komanda.Parameters.AddWithValue("@IDradnika", textBox1.Text);

Komanda.Parameters.AddWithValue("@Ime",textBox2.Text);

Komanda.Parameters.AddWithValue("@Plata",textBox3.Text);

Komanda.Parameters.AddWithValue("@Dodaci",textBox4.Text);

Komanda.Parameters.AddWithValue("@Polozaj",textBox5.Text);

Komanda.Parameters.AddWithValue("@Davalac",cB);

1
Вредност логичке променљиве cB мора имати вредност 0 или 1.

int cB;
if (checkBox1.Checked)
{
cB = 1;
}
else
{
cB = 0;
}

Због предугачких стрингова који се јављају у изразима, пожељно их је поделити на


мање делове, а затим их касније спојити у један, на пример:

string insert = "INSERT INTO


Tabela1(IDradnika,Ime,Plata,Dodaci,Polozaj,Davalac_krvi)";

string values ="VALUES(@IDradnika, @Ime, @Plata, @Dodaci,


@Polozaj, @Davalac)";

Komanda.CommandText = string.Format(insert + values);

Метода која извршава наведену команду је ExecuteNonQuery() уз претходно


отворену конекцију, односно:

Konekcija.Open();

Komanda.ExecuteNonQuery();

Приликом уноса података у базу треба водити рачуна о томе да ли податак већ
постоји у њој, а најчешћи податак који се не сме дуплирати је примарни кључ, односно Id.
Код који испитује вредности наведене колоне са податком који се уноси би изгледао овако:

int i;
bool postoji = false;

try
{
Konekcija.Open();
for (i = 0; i < Ds.Tables[0].Rows.Count; i++)
{
if (Convert.ToInt32( textBox1.Text)
==Convert.ToInt32( Ds.Tables[0].Rows[i]["IDradnika"]))
{
postoji = true; }}

2
if (postoji == false)
{
Komanda.ExecuteNonQuery();
MessageBox.Show("Podatak dodat u bazu");
Konekcija.Close();
}
else
{
MessageBox.Show("Podatak postoji u bazi");
textBox1.Text = textBox2.Text = textBox3.Text
= textBox4.Text = textBox5.Text = "";
checkBox1.Checked = false;
textBox1.Focus();
Konekcija.Close();
}

По извршењу наредби треба затворити конекцију према бази.

Освежавање вредности у апликацији, односно компоненти dataGridView се постиже


позивом методе Form1_Load(sender, e) у којој су иницијализоване почетне вредности.

Брисање података из базе


Брисање реда (слога) из базе се остварује SQL наредбом DELETE. Приликом
креирања стринга за брисање мора се проследити услов везан за податак који се брише из
базе. У нашем случају тај услов би изгледао овако:

Ако бришемо ред у бази селектовањем dataGridView1

komanda.CommandText = "DELETE FROM Tabela1 WHERE IDradnika="


+ dataGridView1.CurrentRow.Cells[0].Value.ToString();

или ако вредност ID читамо из textBox1

Komanda.CommandText = "DELETE FROM Tabela1 WHERE


IDradnika=@IDradnika");
Komanda.Parameters.AddWithValue("IDradnika", textBox1.Text);

3
Приликом брисања података мора се поставити ограничење, односно упозорење да
ли заиста корисник жели да избрише дати податак:

DialogResult dr = new DialogResult();


dr = MessageBox.Show("Да ли заиста желите да
избришете податак из базе","Напуштање документа...",
MessageBoxButtons.YesNoCancel);
if (dr == DialogResult.Yes)
{
Komanda.ExecuteNonQuery();
MessageBox.Show("Podatak izbrisan iz baze");
Konekcija.Close();
}
else if (dr == DialogResult.Cancel) return;
else
return;

Измена података у бази


Често је потребно неки податак унутар базе изменити. Ово се постиже SQL
наредбом UPDATE, односно стринг за измену података би изгледао овако:

Komanda.CommandText ="UPDATE Tabela1 SET Ime=@Ime, Plata=@Plata,


Dodaci=@Dodaci, Polozaj=@Polozaj, Davalac_krvi=@Davalac WHERE
IDradnika=@IDradnika";

Овде треба водити рачуна о редоследу дефинисања параметара:

Komanda.Parameters.AddWithValue("@Ime", textBox2.Text);

Komanda.Parameters.AddWithValue("@Plata",textBox3.Text);

Komanda.Parameters.AddWithValue("@Dodaci", textBox4.Text);

Komanda.Parameters.AddWithValue("@Polozaj", textBox5.Text);

Komanda.Parameters.AddWithValue("@Davalac", cB);

Komanda.Parameters.AddWithValue("@IDradnika", textBox1.Text);

You might also like