Data Binding (везивање података)

Везивање података значи да се у некој контроли аутоматски приказују подаци из базе, најчешће као резултат SELECT упита. Пошто SELECT упит може да обухвати податке из једне или више табела, ово представља веома елегантан начин за приказ података кориснику, уз минимум програмирања. Контроле се повезују на потребну табелу у оквиру DataSet објекта.

Принцип рада је идентичан као што је демонстрирано у претходном примеру, уз додатак пар линија кода које су одговорне за повезивање података. Постоје две варијанте које можемо користити и чији избор зависи од могућности саме контроле. Неке контроле су у стању да табеларно прикажу податке, као што је DataGridView. У овом случају потребно је подесити само DataSource својство и то је све. Овај начин везивања се зове simple data binding.

Неке друге контроле као што TextBox, Label и сличне очигледно не могу приказати редове и колоне података, већ могу да прикажу само вредност одређене колоне (поља из табеле) или одређеног слога (реда у табели). Ово нас доводи до појма Current record (активни слог, односно запис) чије вредности колоне желимо да прикажемо у контроли. Када „напунимо“ DataSet подацима, иницијално активни слог је први (под условом да уопште постоје слогови). У току рада корисник може да врши навигацију по слоговима и на тај начин мења активни слог који се приказује у овако везаним контролама.

Свака контрола која подржава везивање података поседује колекцију DataBindings која може да садржи више везивања података за исту контролу, а у пракси се користи најчешће само једна. Важно је напоменути да можемо одредити на које својство контроле желимо да вежемо вредност колоне активног слога. На пример ако желимо да податке прикажемо у TextBox контроли, то чинимо преко њеног својства Text. Ако у подацима имамо колону која може имати само вредности тачно/нетачно (true/false) логично је користити CheckBox контролу и везати податке на њено својство Checked.

Урадићемо сада једноставан пример, како бисмо илустровали везивање података.

1. Покрећемо Visual Studio, креирамо нови пројекат типа Windows Application.
2. Додајемо нови data source (као у претходном примеру)
3. Додате using директиву како би скратили писање кода:

using System.Data.OleDb;

4. Сада на форму треба поставити елементе корисничког интерфејса. На форму поставите редом:

textBox1
button1 – старт
DataGridView контролу
Две Label контроле: име и разред
Две TextBox контроле
Jednu CheckBox kontrolu: спортисти

Својства Text за Label и CheckBox контроле поставите као што је приказано на следећој слици:

binding1

програмски код:

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.OleDb;
namespace databinding-vezba
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OleDbConnection Konekcija = new OleDbConnection();
            Konekcija.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\baza1\primerBaza.mdb";
            OleDbCommand Komanda = new OleDbCommand();
            Komanda.Connection = Konekcija;
            Komanda.CommandText = textBox1.Text;
            DataSet Ds = new DataSet();
            OleDbDataAdapter Da = new OleDbDataAdapter();
            Da.SelectCommand = Komanda;
            Da.Fill(Ds);
            dataGridView1.DataSource = Ds.Tables[0];
            textBox2.DataBindings.Add("Text", Ds.Tables[0], "Ime");
            textBox3.DataBindings.Add("Text", Ds.Tables[0], "Razred");
            checkBox1.DataBindings.Add("Checked", Ds.Tables[0], "Sportisti");
        }


    }
}

Сада покрените пример. Ако сте све исправно уписали треба да добијете резултат као на следећим сликама:

binding2

binding3

Када у табели мењамо слог, аутоматски се мењају и подаци испод, другим речима – како се крећемо по врстама табеле (тренутно активну врсту дефинише стрелица у „нултој колони“), тако се у textbox-овима име и разред мењају вредности, а ако је колона спортисти у табели чекирана аутоматски се чекира и checkbox спортисти. Пошто су све контроле везане за исти извор података (DataSource), у нашем случају на прву табелу Ds објекта, логично је да је приказ синхронизован. Такође ћете приметити да можете мењати податке директно или у табели или у контролама испод ње. Те измене се такође аутоматски приказују.


Са овим примером смо завршили наше кратко упознавање са програмским језиком C#. Прошли смо све важне делове програмирања у овом програмском језику:

– програмирање конзолних апликација
– објектно оријентисано програмирање
– програмирање windows апликација
– рад са базама података

Све ове области су само „загребане“. Ако вас програмирање у овом програмском језику интересује, потражите неки од туторијала на интернету, или неки курс како бисте продубили своје знање.

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се /  Промени )

Google photo

Коментаришет користећи свој Google налог. Одјавите се /  Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се /  Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се /  Промени )

Повезивање са %s