SlideShare uma empresa Scribd logo
1 de 64
ADO.NET

КОНТРОЛД ӨГӨГДӨЛ ХОЛБОХ

Лекц №7-8

1
АГУУЛГА






Өгөгдөл холболт
Энгийн холболт
Нийлмэл холболт
Өгөгдөлтэй ажиллах контролууд
Лекц №7-8

2
ӨГӨГДӨЛ ХОЛБОЛТ






Өгөгдөл холболт гэдэг нь контролын агуулгыг
өгөгдлийн эх үүсвэртэй холбохыг хэлнэ.
Контрол нь өгөгдлийн эх үүсвэрлүү шууд
холболт хийдэггүй.
Контрол нь завсарын эх үүсвэртэй, завсрын эх
үүсвэр нь өгөгдлийн эх үүсвэртэй холбогдоно.
Ө.Х Контрол болон өгөгдлийн эх үүсвэр хоѐрын
холбогч нь завсрын эх үүсвэр юм.
Завсрын эх үүсвэр гэдэг нь санах ойд байрлах
өгөгдлийн төлөөлөл юм.
Т.Гантөр

3
ӨГӨГДӨЛ ХОЛБОЛТ
Өгөгдлийн холболт нь дараах төрлүүдтэй:
 Энгийн холболт – зөвхөн нэг утга харуулдаг
контролд ашиглагдана.
 Нийлмэл холболт – жагсаалт, грид гэх мэт
олон
өгөгдлийг
харуулдаг
контролд
ашиглагдана.

Т.Гантөр

4
ӨГӨГДӨЛ ХОЛБОЛТ
Өгөгдлийн эх үүсвэр болон контролын хооронд
өгөгдлийг
холбоход
дараах
гол
объектууд
хэрэглэгдэнэ.
 Binding – объект болон контролын хооронд энгийн
холболт хийнэ.
 CurrencyManager – Binding объектуудын жагсаалтыг
удирдана.
Жагсаалт
хэлбэрийн
үүсгэврүүдтэй
ажилладаг холболтын менежер.
 PropertyManager объектын шинжийг контролтой
холбох менежер.
 BindingContext
– контролын бүх холболтын
менежерүүдийн мэдээллийг хадгалж зохицуулдаг
бөгөөд үүнийг голдуу өгөгдлийн эх үүсвэрт харгалзах
холболтын менежерт хандахад ашигладаг.
Т.Гантөр

5
ӨГӨГДӨЛ ХОЛБОЛТ

Т.Гантөр

6
ӨГӨГДӨЛ ХОЛБОЛТ

ЭНГИЙН ХОЛБОЛТ
•

•

Энгийн холболтыг ямарч контролд
хэрэглэж болох ба нэг контролын хэд
хэдэн шинжид ч зэрэг хэрэглэж болно.
Тухайн
контролын
DataBinding.Add()
метод нь өгөгдлийн эх үүсвэрийг
контролын
пропертуудтай
холбох
холболтуудын олонлог үүсгэнэ.

Т.Гантөр

7
ӨГӨГДӨЛ ХОЛБОЛТ

ЭНГИЙН ХОЛБОЛТ
•

DataBindings.Add(string propertyName, object
dataSourse, string dataMember)
propertyName – тухайн контролын өгөгдөл
холбох шинж
dataSource – өгөгдлийн эх үүсвэр
dataMember – өгөгдлийн эх үүсвэр дэхь
талбарын нэр

Т.Гантөр

8
ӨГӨГДӨЛ ХОЛБОЛТ

ЭНГИЙН ХОЛБОЛТ
DataTable dt=new DataTable(“User”);
SqlConnection conn= common.getConn();
Conn.Open();
SqlCommand cmd=new SqlCommand(“select d.id,
fullname, permission, reg_date from (select username,
permission, b.id from permission a join [user] b on
a.id=permission_id) c join worker d on c.id=d.login_id”,
conn);
SqlDataReader rdr=cmd.ExecuteReader();
dt.Load(rdr);
textBox1.DataBindings.Add(“Text”, dt, ”fullname”);
Т.Гантөр

9
ӨГӨГДӨЛ ХОЛБОЛТ

ЭНГИЙН ХОЛБОЛТ
Text1.DataBindings.Add(new Binding (“Text”, ds,
”customers.custName”));

DataTimePicker1.DataBindings.Add(new Binding(“Value”,
ds,
“customers.CustToOrders.OrderDate
”));
Binding b= new Binding(“Text”, ds,
“customers.custToOrders.OrderAmo
unt”);
Text3.DataBindings.Add(b);
Т.Гантөр

10
ӨГӨГДӨЛ ХОЛБОЛТ

ЭНГИЙН ХОЛБОЛТ
•
•
•

•

Тухайн контролын нэг пропертид нэг л
холболт хийх боломжтой
Хэрвээ хоѐр дахь холболт хийхийг
оролдвол алдаа үүсэх болно.
Үүнээс зайлсхийхийн тулд холболт нэмэх
болгондоо өмнө холболт үүссэн эсэхийг
шалгаж байх хэрэгтэй
Хэрвээ өмнө хийгдсэн холболт байвал
түүнийг устгаж байж дараагийн холболтыг
хийх хэрэгтэй
Т.Гантөр

11
ӨГӨГДӨЛ ХОЛБОЛТ

ЭНГИЙН ХОЛБОЛТ
If(textBox1.DataBindings[“Text”] !=null)
textBox1.DataBindings.Remove(
textBox1.DataBindings[“Text”]);
textBox1.DataBindings.Add(“Text”, dt, “fullname”);

Т.Гантөр

12
ӨГӨГДӨЛ ХОЛБОЛТ

НИЙЛМЭЛ ХОЛБОЛТ
•

•

Нийлмэл холболтоор олон элемэнтийг
зэрэг харуулах боломжтой
- Жагсаалт хэлбэрээр
- Хүснэгт хэлбэрээр
Өгөгдлийг харуулж буй хэлбэрээсээ
хамааран өгөгдөл холболт нь ялгаатай
хийгдэнэ.
Т.Гантөр

13
ӨГӨГДӨЛ ХОЛБОЛТ
ӨГӨГДЛИЙГ ЖАГСААЛТ ХЭЛБЭРИЙН КОНТРОЛД ХОЛБОХ
•

•

Жагсаалт хэлбэрийн ялгаатай хэрэглээтэй
контролуудын хувьд өгөгдөл холболтын
техник нь адилхан байдаг.
Дараах шинжүүд нь ашиглагдана.
 DataSourse – өгөгдлийн эх үүсвэр
 DisplayMemberконтролд
харуулах
өгөгдлийн гишүүн
 ValueMemberконтролд харагдаж байгаа
өгөгдлийн жинхэнэ утгыг илэрхийлэх
гишүүн
Т.Гантөр

14
ӨГӨГДӨЛ ХОЛБОЛТ
ӨГӨГДЛИЙГ ЖАГСААЛТ ХЭЛБЭРИЙН КОНТРОЛД ХОЛБОХ

Өгөгдөлтэй холбогдсон жагсаалт хэлбэрийн
контролуудаас утга сонгоход
ValueMember
шинжид
холбосон
талбарын утга SelectedValue шинжид
буцна.
DisplayMember
шинжид
холбосон
талбарын утга SelectedItem шинжид буцна.

Т.Гантөр

15
НИЙЛМЭЛ ХОЛБОЛТ
ӨГӨГДЛИЙГ ЖАГСААЛТ ХЭЛБЭРИЙН КОНТРОЛД ХОЛБОХ
DataTable dt=new DataTable(“User”);
SqlConnection conn=common.getConn();
Conn.Open();
SqlCommand cmd=new SqlCommand(“select
d.id, fullname, permission, reg_date from (select
username, permission, b.id from permission a join
[user] b on a.id=permission_id) c join worker d on
c.id=d.login_id”, conn);
SqlDataReader rdr=cmd.ExecuteReader();
dt.Load(rdr);
listBox1.DataSource=dt;
listBox1.ValueMember=“id”;
listBox1.DisplayMember=“Fullname”;
Т.Гантөр

16
НИЙЛМЭЛ ХОЛБОЛТ
ӨГӨГДЛИЙГ ЖАГСААЛТ ХЭЛБЭРИЙН КОНТРОЛД ХОЛБОХ
•

•

Жагсаалт
хэлбэрийн
контролыг
нэг
өгөгдөл харуулах бусад контролуудтай
хавсарч хэрэглэснээр нэг мөрийн хэд
хэдэн баганыг зэрэг харуулах боломжтой.
Үүний
тулд
тухайн
контролуудын
өгөгдлийн эх үүсвэрийг адил тодорхойлох
шаардлагатай

Т.Гантөр

17
НИЙЛМЭЛ ХОЛБОЛТ
•

•

•

Контролд өгөгдөл холболтыг
 нэг чиглэлтэйгээр
 хоѐр чиглэлтэйгээр хийж болно.
Өгөгдлийг зөвхөн дэлгэц дээр харуулахаар
холбож байгаа бол нэг чиглэлтэй холболт
болно.
Шинэ мөр нэмэх зэргээр цаад өгөгдлийн эх
үүсвэрийг өөрчлөх эсвэл контрол дээр
харагдаж байгаа утгыг өөрчлөх замаар
хийгдсэн өөрчлөлт нь эх үүсвэрт нөлөөлөх
бол хоѐр чиглэлтэй холболот болно. Т.Гантөр
18
НИЙЛМЭЛ ХОЛБОЛТ

Өгөгдлийн эх үүсвэр болон контролын
хооронд өгөгдлийг хоѐр чиглэлтэйгээр
холбохын тулд хэд хэдэн объектууд
хамтарч ажиллах шаардлагатай болно.

Т.Гантөр

19
DATAGRIDVIEW КОНТРОЛ
•

•

DataGridView контрол нь олон төрлийн
өгөгдлийн эх үүсвэрийн өгөгдлийг тэгш
өнцөгт хүснэгт хэлбэрээр харуулах ,
засварлах боломжийг олгоно.
DataGridView контрол нь маш олон
гишүүдтэй, маш их боломжтой контрол
юм.

Т.Гантөр

20
DATAGRIDVIEW КОНТРОЛ
Контролын бүтэц
•

•

•

DataGridView контрол нь нүднүүд(cells)
болон зурваснууд(bands) гэсэн үндсэн
хоѐр төрлийн объектоос бүрддэг.
Нүднүүд нь DataGridViewCell классаас
удамшина
DataGridViewColumn, DataGridViewRow
гэсэн
хоѐр
төрлийн
зурвас
нь
DataGridViewBand классаас удамшина.
Т.Гантөр

21
DATAGRIDVIEW КОНТРОЛ
КОНТРОЛЫН БҮТЭЦ

Т.Гантөр

22
DATAGRIDVIEW КОНТРОЛ
Контролын бүтэц- Нүд
•

•

•

•

DataGridView контролын үндсэн нэгж нь
нүд юм.
Харагдах байдал нь нүднүүд дээр
төвлөрөх ба өгөгдөл оруулалт нь
нүднүүдээр гүйцэтгэгдэнэ.
Нүдэнд
хандахдаа
мөрийн(DataGridViewRow)
Cells
олонлогийг ашиглана.
Сонгогдсон
нүдэнд
хандах
бол
DataGridView контролын SelectedCells
Т.Гантөр
олонлогийг ашиглана.

23
DATAGRIDVIEW КОНТРОЛ
Контролын бүтэц- Нүд
•

DataGridView контрол нь дараах төрлийн
нүднүүдтэй байж болно.
 DataGridViewTextBoxCell
DataGridViewButtonCell
DataGridViewLinkCell
DataGridViewCheckBoxCell
DataGridViewComboBoxCell
DataGridViewImageCell
DataGridViewHeaderCell
DataGridViewRowHeaderCell
DataGridViewColumnHeaderCell
DataGridViewTopLeftHeaderCell
Т.Гантөр

24
DATAGRIDVIEW КОНТРОЛ
Контролын бүтэц- Нүд

Багш: Магситр Т.Гантөр

25
DATAGRIDVIEW КОНТРОЛ
Контролын бүтэц- Багана
•

•

DataGridView контролын Columns
олонлогийг ашиглан баганад хандана. Харин
сонгогдсон багануудад хандах бол
SelectedColumns олонлогийг ашиглана.
Дараах төрлийн баганууд байна.
 DataGridViewButtonColumn
DataGridViewCheckBoxColumn
DataGridViewComboBoxColumn
DataGridViewImageColumn
DataGridViewTextBoxColumn
DataGridViewLinkColumn
Т.Гантөр

26
DATAGRIDVIEW КОНТРОЛ
Контролын бүтэц- Багана

Т.Гантөр

27
DATAGRIDVIEW КОНТРОЛ
Контролын бүтэц- Мөр
•

DataGridView контролын Rows олонлогийг
ашиглан мөрөнд хандана. Харин
сонгогдсон мөрүүдэд хандах бол
SelectedRows олонлогийг ашиглан.

Т.Гантөр

28
DATAGRIDVIEW КОНТРОЛ
Контролын бүтэц- Мөр

Т.Гантөр

29
DATAGRIDVIEW КОНТРОЛ
Контролын бүтэц

Багш: Магситр Т.Гантөр

30
DATAGRIDVIEW КОНТРОЛ

Багана тодорхойлох
DataGridViewTextBoxCell cell=new DataGridViewTextBoxCell();
DataGridViewColumn col=new DataGridViewColumn(cell);
Col.HeaderText=“Киноны нэр”;
Col.Width=150;
dataGridView1.Columns.Add(col);
dataGridView1.ColumnCount=3;
dataGridView1.Columns[1].HeaderText=“Он”;
dataGridView1.Columns[2].HeaderText=“Найруулагч”;
dataGridView1.Columns[1].Name=“Year”;
dataGridView1.Columns[1].Width=“80”;
dataGridView1.Columns[2].Width=“110”;
Т.Гантөр

31
DATAGRIDVIEW КОНТРОЛ

Мөр нэмэх
object[] row1={“Casablanca”, “1942”, “Micheal Curtiz”};
dataGridView1.Rows.Add(row1);
object[] row2={“Raging Bull”, “1980”, “Martin
Scorsese”};
dataGridView1.Rows.Add(row2);
object[] row3={“On the Waterfront”, “1954”, “Elia
Kazan”};
dataGridView1.Rows.Add(row3);
object[] row4={“Some Like it Hot”, “1959”, “Billy
Wilder”};
dataGridView1.Rows.Add(row4);
32
Багш: Магситр Т.Гантөр
DATAGRIDVIEW КОНТРОЛ

DataGridView классын чухал шинжүүд
Шинжүүд

Тайлбар

AllowUserToAddRows

Хэрэглэгч мөр нэмж болох эсэхийг
тодорхойлно.

AllowUserToDeleteRows

Хэрэглэгч мөр устгаж болох эсэхийг
тодорхойлно.

AllowUserToOrderColumns

Хэрэглэгч багануудын байрлалыг
солих эсэхийг тодорхойлно.

AllowUserToResizeColumns

Хэрэглэгч баганын хэмжээг өөрчилж
болох эсэхийг тодорхойлно.

AllowUserToResizeRows

Хэрэглэгч мөрийн хэмжээг өөрчилж
болох эсэхийг тодорхойлно.

Багш: Магситр Т.Гантөр

33
DATAGRIDVIEW КОНТРОЛ
DataGridView классын чухал шинжүүд
• dataGridView1.AllowUserToAddRows=true;

• dataGridView1.AllowUserToAddRows=false;

Багш: Магситр Т.Гантөр

34
DATAGRIDVIEW КОНТРОЛ

DataGridView классын чухал шинжүүд
Шинжүүд

Тайлбар

SelectionMode

Мөр сонгох горимыг DataGridViewSelectionMode
төрлөөр тодорхойлно.

MultiSelect

Тухайн нэг эгшинд нэгээс олон мөр , багана , мөр
сонгож болох эсэхийг тодорхойлно.

CurrentCell

Идэвхитэй нүдийг тодорхойлно, буцаана

CurrentCellAddress

Идэвхитэй нүдний мөр, баганын индексийг буцаана.

CurrentRows

Идэвхитэй нүдийг агуулж буй мөрийг буцаана.

NewRowIndex

Шинэ бичлэгийн мөрийн индексийг буцаана.

Багш: Магситр Т.Гантөр

35
DATAGRIDVIEW КОНТРОЛ

DataGridView классын чухал шинжүүд
Шинжүүд
CellBorderStyle

DefaultCellStyle
GridColor

BackColor
BackgroundColor
BorderStyle

Тайлбар
Нүднүүдийн хүрээний хэлбэрийг мөр хооронд, багана
хооронд, мөр багана хооронд ямар байхыг
тодорхойлно.
Нүдний хэлбэрийг тодорхойлно.
Нүднүүдийг хүрээлэх шугамнуудын өнгийг
тодорхойлно.

Контролын дэвсгэр өнгийг тодорхойлно.
Нүднүүдийн дэвсгэр өнгийг тодорхойлно.
Контролын хүрээний хэлбэрийг тодорхойлно.

AlternatingRowsDefaul Сондгой дугаартай мөрийн харагдах хэлбэрийг
тодорхойлно.
tCellStyle
Багш: Магситр Т.Гантөр

36
DATAGRIDVIEW КОНТРОЛ

DataGridView классын чухал шинжүүд
DataGridViewCellStyle style=new DataGridViewCellStyle();
style.BackColor=Color.Bisque;
style.Font=new Font(“Arial”,8,FontStyle.Bold);
Style.ForeColor=Color.Navy;
Style.Paddin=new Padding(5,2,5,5);
style.SelectionBackColor=Color.LightBlue;
dataGridView1.DefaultCellStyle=style;

Багш: Магситр Т.Гантөр

37
DATAGRIDVIEW КОНТРОЛ

DataGridView классын чухал методууд
Методууд
BeginEdit()

CancelEdit()
EndEdit()
CommitEdit()

Тайлбар
Идэвхитэй нүдийг засварлах горимд шилжүүлнэ.

Идэвхитэй нүдэнд хийсэн өөрчлөлтүүдийг
хэрэгсэхгүй болгож, засварлах горимыг цуцлана.
идэвхитэй нүдний засварлах үйлдлийг дуусгана.

Идэвхитэй нүдийг засварлах горимыг
дуусгахгүйгээр өөрчлөлтийг хэрэгжүүлнэ.

Багш: Магситр Т.Гантөр

38
DATAGRIDVIEW КОНТРОЛ
DataGridView классын чухал үзэгдлүүд
Үзэгдлүүд

Тайлбар

CellValueChanged

Нүдний утга өөрчлөгдөх үед үүснэ.

CurrentCellChanged

Идэвхитэй нүдний утга өөрчлөгдөх үед
үүснэ.

CellClick

Нүдэн дээр дарахад үүснэ.

CellContentClick

Нүдний агуулга дээр дарахад үүснэ.

CellEnter, CellLeave

Нүд фокус авах, алдахад үүснэ.

ColumnHeaderMouseClick
ColumnHeaderMouseDoubleClick

Баганын толгой дээр дарахад үүснэ.

RowEnter, RowLeave

Мөр фокус авах, алдахад үүснэ.

RowHeaderMouseClick
RowHeaderMouseDoubleClick

Мөрийн толгой дээр дарахад үүснэ.

UserAddedRow, UserDeletedRow

Мөр нэмэх, устгах үед үүснэ.
39
DATAGRIDVIEW КОНТРОЛ
DataGridView классын чухал үзэгдлүүд
Үзэгдлүүд

Тайлбар

CellValueChanged

Нүдний утга өөрчлөгдөхөд

CurrentCellChanged

Идэвхитэй нүд өөрчлөгдөхөд

CellClick

Нүдэн дээр дарахад

CellContentClick

Нүдний агуулга дээр дарахад

CellEnter, CellLeave

Нүд идэвхижихэд, идэвхигүй болоход

ColumnHeaderMouseClick

Баганын толгой дээр хулганаар дарахад

ColumnHeaderMouseDo Баганын толгой дээр хулганаар хоѐр дарахад
ubleClick
RowEnter, RowLeave

Мөр идэвхижихэд, идэвхигүй болоход

40
DATAGRIDVIEW КОНТРОЛ
DataGridViewColumn классын чухал гишүүд
Шинжүүд

Тайлбар

AutoSizeMode

Баганын өргөнийг автоматаар тохируулах горимыг
тодорхойлно, буцаана.

HeaderCell

Баганын толгойг тодорхойлно, буцаана.

HeaderText

Баганын толгойн нүдний гарчиг текстийг тодор/буц

Frozen

Баганыг хөдөлгөөнгүй болгох эсэхийг тодор/буц

MininumWidth

Баганын өргөнийг хамгийн бага хязгаарыг тодор/буц

Width

Баганын өргөнийг тодорхойлно ,буцаана

ReadOnly

Баганын утгуудыг засаж болох эсэхийг тодорхойлно.

SortMode

Баганын эрэмбэлэх горимыг тодорхойлно ,буцаана.

ValueType

Баганын нүднүүдийн авах утгын төрлийг буцаана.
41
DATAGRIDVIEW КОНТРОЛ
DataGridViewColumn классын чухал гишүүд

dataGridView1.Columns[0].Frozen=true;
//хөдөлгөөнгүй багана
dataGridView1.Columns[2].ReadOnly=true;
//зөвхөн уншигдах багана
dataGridView1.Columns[0].MinimumWidth=10
0;
//өргөний хязгаарлалт
dataGridView1.Columns[0].SortMode=DataGri
dViewColumnSortMode.NotSortable;
//эрэмбэлэлт
42
DATAGRIDVIEW КОНТРОЛ

DataGridViewRow классын чухал гишүүд
Шинжүүд

Тайлбар

Cells

Мөрөн дэх нүднүүдийн олонлог буцаана.

IsNewRow

Тухайн мөр нь шинэ бичлэгт зориулсан мөр мөн эсэхийг
буцаана.

Selected

Тухайн мөр сонгогдсон эсэхийг тодорхойлно, буцаана

Height

Мөрийн өндрийг тодорхойлно, буцаана

43
DATAGRIDVIEW КОНТРОЛ

DataGridViewCell классын чухал гишүүд
Шинжүүд

Тайлбар

ColumnIndex

Тухайн нүдний байрлах баганын индексийг буцаана

RowIndex

Тухайн нүдний байрлах мөрийн индексийг буцаана

Value

Тухайн нүдний утгыг буцаана

OwningColumn

Тухайн нүдийг агуулж байгаа баганыг буцаана

OwningRow

Тухайн нүдийг агуулж байгаа мөрийг буцаана.

44
НИЙЛМЭЛ ХОЛБОЛТ
Өгөгдлийг хүснэгт хэлбэрийн контролд холбох
•

Хүснэгт хэлбэрийн контрол буюу DataGridView
контролд
өгөгдөл
холбохдоо
дараах
пропертуудыг ашиглана.
 DataSource
–
өгөгдлийн
эх
үүсвэрийг
тодорхойлно.
 DataMember
– өгөгдлийн эх үүсвэр дэх
хүснэгтийн нэрийг тодорхойлно.
 DataPropertyName
–
багананд
холбох
өгөгдлийн үүсвэрийг тодорхойлно.

Багш: Магситр Т.Гантөр

45
НИЙЛМЭЛ ХОЛБОЛТ
Өгөгдлийг хүснэгт хэлбэрийн контролд холбох
String strSQL= “sp_selectReader”;
SqlDataAdapter da = new SqlDataAdapter(strSQL, strconn);
DataSet ds = new DataSet();
da.Fill(ds, “reader”);
dgReader.DataSource = ds;
dgReader.DataMember=“reader”;
dgReader.Columns.Clear();
dgReader.Columns.Add(“id”,”id”);
dgReader.Columns[“id”].DataPropertyName=“id”;
dgReader.Columns[“id”].Visible=false;
dgReader.Columns.Add(“regnum”,”Бүртгэлийн дугаар”);
dgReader.Columns[“regnum”].DataPropertyName= “card_number”;

Багш: Магситр Т.Гантөр

46
НИЙЛМЭЛ ХОЛБОЛТ

Мастер- дагуул DataGridView
•

DataGridView контролын Rows олонлогийг
ашиглан мөрөнд хандана. Харин сонгогдсон
мөрүүдэд хандах бол SelectedRows олонлогийг
ашиглана.

Багш: Магситр Т.Гантөр

47
•

BindingSource компонент нь контролыг үндсэн
өгөгдлийн эх үүсвэртэй холбох үйл ажиллагааг
хялбарчлах зорилгоор бүтээгдсэн.

•

BindingSource компонент нь контрол болон
өгөгдлийн эх үүсвэрийн хооронд хоѐр чиглэлд
өгөгдөл дамжуулах үүргийг гүйцэтгэнэ. Өөрөөр
хэлбэл командуудаах дамжуулан форм дээрх
өгөгдлүүдийг өгөгдлийн үндсэн жагсаалтруу
илгээх боломжийг олгодог.

Багш: Магситр Т.Гантөр

48
Багш: Магситр Т.Гантөр

49
Өгөгдлийн эх үүсвэрийг тодорхойлох
•

•

BindingSource контролд өгөгдлийн эх
үүсвэрийг тодорхойлохдоо DataSource
шинжийг нь ашиглана.
Харин контролуудын хувьд өгөгдлийн эх
үүсвэр тодорхойлох шинжид BindingSource
контролыг холбож өгнө.

Багш: Магситр Т.Гантөр

50
Өгөгдлийн эх үүсвэрийг тодорхойлох
SqlConnection conn = new SqlConnection(“data
sourse=bataa; database=library; user id=sa;
password=12345”);
BindingSource bs = new BindingSourse();
SqlCommand cmd = new SqlCommand(“select*from
author”, conn);
Conn.Open();
bs.DataSource=cmd.ExecuteReader();
textBox1.DataBindings.Add(“Text”, bs,
“author_fullname”);
Conn.Close();
Багш: Магситр Т.Гантөр

51
Өгөгдлийн эх үүсвэрийг тодорхойлох
SqlConnection conn = new
SqlConnection(“data sourse=bataa;
database=library; user id=sa;
password=12345”);
BindingSource bs = new BindingSourse();
da.Fill(ds, “author”);
bs.DataSource = ds.Tables[0];
dataGridView1.DataSource=bs;
Багш: Магситр Т.Гантөр

52
Өгөгдлийг боловсруулах
BindingSource контрол нь завсарын эх үүсвэр
дэхь
өгөгдөлрүү
хандах,
боловсруулах
боломжоор хангах гишүүдтэй байдаг.
Гишүүд

Тайлбар

List

Контролтой холбогдсон жагсаалтыг буцаана.

Position

Идэвхитэй элемэнтийг байрлалыг тодорхойлно, буцаана

Current

Өгөгдлийн эх үүсвэрийн идэвхитэй элемэнтийг буцаана

Sort

Өгөгдлийг эрэмбэлэх талбарын нэр, эрэмбийн чиглэлийг
тодорхойлно, буцаана.

Filter

Харуулах өгөгдлийг шүүхэд ашиглах илэрхийллийг
тодорхойлно, буцаана.
Багш: Магситр Т.Гантөр

53
Өгөгдлийг боловсруулах
Гишүүд

Тайлбар

MoveFirst()

Жагсаалтын эхний элемэнтийг идэвхижүүлнэ

MoveLast()

Жагсаалтын сүүлийн элемэнтийг идэвхижүүлнэ

MovePrevious()

Жагсаалтын өмнөх элемэнтийг идэвхижүүлнэ

MoveNext()

Жагсаалтын дараагийн элемэнтийг идэвхижүүлнэ

RemoveCurrent() Жагсаалтаас идэвхитэй элемэнтийг устгана
AddNew()

Жагсаалтад шинэ элемэнт нэмнэ

EndEdit()

Завсрын эх үүсвэрт хийгдсэн өөрчлөлтийг
хэрэгжүүлнэ.

CancelEdit()

Засврын эх үүсвэрт хийгдсэн өөрчлөлтийг цуцлана.
Багш: Магситр Т.Гантөр

54
Өгөгдлийг боловсруулах
SqlDataAdapter da = new
SqlDataAdapter(“select*from book_sub”, “data
source=bataa; database=library; user id=sa;
password=12345”);
DataSet ds =new DataSet();
BindingSource bs = new BindingSourse();
da.Fill(ds, “type”);
bs.DataSource= ds.Tables[0];
bs.Sort = “sub_type ASC”;
bs.Filter=“book_type_id=4”;
dataGridView1.DataSource=bs;
Багш: Магситр Т.Гантөр

55
Өгөгдлийг боловсруулах

56
•

BindingNavigator контрол нь форм дээрх
өгөгдөлтэй
холбогдсон
контролуудыг
хэрэглэнчийн
интерфейсээр
удирдах
боломжийг олгоно. Ө.х BindingSource
компненттой уялдаж ажиллан , форм
дээрх өгөгдлийг боловсруулах, удирдах
боломжийг хэрэглэгчид олгодог контрол
юм.

Багш: Магситр Т.Гантөр

57
•

•

BindingNavigator контрол нь өгөгдөл нэмэх,
өгөгдөл устгах, өгөгдлийг удирдах гэх мэт
өгөгдөлтэй ажиллах ихэнх стандарт
үйлдлүүдэд зориулагдсан ToolStripItem
объектуудын нэгдэл болсон хэрэгслийн
мөр байдлаар зохион байгуулагдсан
байдаг.
BindingNavigator контролд өгөгдлийн эх
үүсвэрийг нь BindingSource компонентоор
тодорхойлно.
Багш: Магситр Т.Гантөр

58
Багш: Магситр Т.Гантөр

59
Хэрэглэгчийн контрол

BindingNavigatorын гишүүд

BindingSource-ын
гишүүд

Эхний элемэнтрүү шилжүүлэх

MoveFirstItem

MoveFirst

Өмнөх элемэнтрүү шилжүүлэх

MovePreviousItem

MovePrevious

Идэвхитэй элемэнтийн байрлал

PositionItem

Current

Элемэнтийн тоо

CountItem

Count

Дараагийн элемэнтрүү

MoveNextItem

MoveNext

Сүүлчийн элемэнтрүү шилжүүлэх

MoveLastItem

MoveLast

Шинээр элемэнт нэмэх

AddNewItem

AddNew

Идэвхитэй элемэнтийг устгах

DeleteItem

RemoveCurrent

шилжүүлэх

60
Багш: Магситр Т.Гантөр

61
SqlDataAdapter da = new SqlDataAdapter(“select*from
book_sub”, “data source=bataa; database=library; user
id=sa; password=12345”);
DataSet ds =new DataSet();
BindingSource bs = new BindingSourse();
private void Form1_Load(object sender, EventArgs e)
{
da.Fill(ds, “type”);
bs.DataSource= ds.Tables[0];
bindingNavigator1.BindingSource=bs;
dataGridView1.DataSource=bs;
}
Багш: Магситр Т.Гантөр

62
private void bindingNavigatorAddNewItem_Click(object
sender, EventArgs e)
{
dataGridView1.BeginEdit(true);
}
private void btnSave_Click(object sender, EventArgs e)
{
SqlCommandBuilder cmdb= new
SqlCommandBuilder(da);
daUpdate(ds.Tables[0]);
}
Багш: Магситр Т.Гантөр

63
Багш: Магситр Т.Гантөр

64

Mais conteúdo relacionado

Mais de Gantur Togtokh

Practics onprogramming
Practics onprogrammingPractics onprogramming
Practics onprogrammingGantur Togtokh
 
Lecture4 5 aлгоритм_түүний_шинжчанар
Lecture4 5 aлгоритм_түүний_шинжчанарLecture4 5 aлгоритм_түүний_шинжчанар
Lecture4 5 aлгоритм_түүний_шинжчанарGantur Togtokh
 
Lecture1 kомпьютерт мэдээлэл_дүрслэх
Lecture1 kомпьютерт мэдээлэл_дүрслэхLecture1 kомпьютерт мэдээлэл_дүрслэх
Lecture1 kомпьютерт мэдээлэл_дүрслэхGantur Togtokh
 
Lecture1 kомпьютерт мэдээлэл_дүрслэх
Lecture1 kомпьютерт мэдээлэл_дүрслэхLecture1 kомпьютерт мэдээлэл_дүрслэх
Lecture1 kомпьютерт мэдээлэл_дүрслэхGantur Togtokh
 
Lecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанарLecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанарGantur Togtokh
 
Lecture2 kомпьютерийн ерөнхий бүтэц
Lecture2 kомпьютерийн ерөнхий бүтэцLecture2 kомпьютерийн ерөнхий бүтэц
Lecture2 kомпьютерийн ерөнхий бүтэцGantur Togtokh
 
Lecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанарLecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанарGantur Togtokh
 
Lecture2 kомпьютерийн ерөнхий бүтэц
Lecture2 kомпьютерийн ерөнхий бүтэцLecture2 kомпьютерийн ерөнхий бүтэц
Lecture2 kомпьютерийн ерөнхий бүтэцGantur Togtokh
 
Lecture5 aлгоритм түүний_шинжчанар
Lecture5 aлгоритм түүний_шинжчанарLecture5 aлгоритм түүний_шинжчанар
Lecture5 aлгоритм түүний_шинжчанарGantur Togtokh
 
Lecture3 aлгоритм түүний_шинжчанар.ppt
Lecture3 aлгоритм түүний_шинжчанар.pptLecture3 aлгоритм түүний_шинжчанар.ppt
Lecture3 aлгоритм түүний_шинжчанар.pptGantur Togtokh
 
Lecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанарLecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанарGantur Togtokh
 
Lecture4 5 aлгоритм_түүний_шинжчанар
Lecture4 5 aлгоритм_түүний_шинжчанарLecture4 5 aлгоритм_түүний_шинжчанар
Lecture4 5 aлгоритм_түүний_шинжчанарGantur Togtokh
 
Lecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанарLecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанарGantur Togtokh
 
Lecture2 kомпьютерийн ерөнхий бүтэц
Lecture2 kомпьютерийн ерөнхий бүтэцLecture2 kомпьютерийн ерөнхий бүтэц
Lecture2 kомпьютерийн ерөнхий бүтэцGantur Togtokh
 
Lecture1 kомпьютерт мэдээлэл_дүрслэх
Lecture1 kомпьютерт мэдээлэл_дүрслэхLecture1 kомпьютерт мэдээлэл_дүрслэх
Lecture1 kомпьютерт мэдээлэл_дүрслэхGantur Togtokh
 

Mais de Gantur Togtokh (20)

Practics onprogramming
Practics onprogrammingPractics onprogramming
Practics onprogramming
 
Lecture4 5 aлгоритм_түүний_шинжчанар
Lecture4 5 aлгоритм_түүний_шинжчанарLecture4 5 aлгоритм_түүний_шинжчанар
Lecture4 5 aлгоритм_түүний_шинжчанар
 
Lecture1 kомпьютерт мэдээлэл_дүрслэх
Lecture1 kомпьютерт мэдээлэл_дүрслэхLecture1 kомпьютерт мэдээлэл_дүрслэх
Lecture1 kомпьютерт мэдээлэл_дүрслэх
 
Lecture1 kомпьютерт мэдээлэл_дүрслэх
Lecture1 kомпьютерт мэдээлэл_дүрслэхLecture1 kомпьютерт мэдээлэл_дүрслэх
Lecture1 kомпьютерт мэдээлэл_дүрслэх
 
Lecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанарLecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанар
 
Lecture2 kомпьютерийн ерөнхий бүтэц
Lecture2 kомпьютерийн ерөнхий бүтэцLecture2 kомпьютерийн ерөнхий бүтэц
Lecture2 kомпьютерийн ерөнхий бүтэц
 
Lecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанарLecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанар
 
Lecture2 kомпьютерийн ерөнхий бүтэц
Lecture2 kомпьютерийн ерөнхий бүтэцLecture2 kомпьютерийн ерөнхий бүтэц
Lecture2 kомпьютерийн ерөнхий бүтэц
 
Sp l2
Sp l2Sp l2
Sp l2
 
Lecture9
Lecture9Lecture9
Lecture9
 
Lecture5 aлгоритм түүний_шинжчанар
Lecture5 aлгоритм түүний_шинжчанарLecture5 aлгоритм түүний_шинжчанар
Lecture5 aлгоритм түүний_шинжчанар
 
Lecture3 aлгоритм түүний_шинжчанар.ppt
Lecture3 aлгоритм түүний_шинжчанар.pptLecture3 aлгоритм түүний_шинжчанар.ppt
Lecture3 aлгоритм түүний_шинжчанар.ppt
 
Lecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанарLecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанар
 
Lecture2 4
Lecture2 4Lecture2 4
Lecture2 4
 
Lecture1
Lecture1Lecture1
Lecture1
 
Lecture4 5 aлгоритм_түүний_шинжчанар
Lecture4 5 aлгоритм_түүний_шинжчанарLecture4 5 aлгоритм_түүний_шинжчанар
Lecture4 5 aлгоритм_түүний_шинжчанар
 
Lecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанарLecture3 aлгоритм түүний_шинжчанар
Lecture3 aлгоритм түүний_шинжчанар
 
Lecture2 kомпьютерийн ерөнхий бүтэц
Lecture2 kомпьютерийн ерөнхий бүтэцLecture2 kомпьютерийн ерөнхий бүтэц
Lecture2 kомпьютерийн ерөнхий бүтэц
 
Lecture1 kомпьютерт мэдээлэл_дүрслэх
Lecture1 kомпьютерт мэдээлэл_дүрслэхLecture1 kомпьютерт мэдээлэл_дүрслэх
Lecture1 kомпьютерт мэдээлэл_дүрслэх
 
Vpii seminar1
Vpii seminar1Vpii seminar1
Vpii seminar1
 

Lecture7 8

  • 2. АГУУЛГА     Өгөгдөл холболт Энгийн холболт Нийлмэл холболт Өгөгдөлтэй ажиллах контролууд Лекц №7-8 2
  • 3. ӨГӨГДӨЛ ХОЛБОЛТ      Өгөгдөл холболт гэдэг нь контролын агуулгыг өгөгдлийн эх үүсвэртэй холбохыг хэлнэ. Контрол нь өгөгдлийн эх үүсвэрлүү шууд холболт хийдэггүй. Контрол нь завсарын эх үүсвэртэй, завсрын эх үүсвэр нь өгөгдлийн эх үүсвэртэй холбогдоно. Ө.Х Контрол болон өгөгдлийн эх үүсвэр хоѐрын холбогч нь завсрын эх үүсвэр юм. Завсрын эх үүсвэр гэдэг нь санах ойд байрлах өгөгдлийн төлөөлөл юм. Т.Гантөр 3
  • 4. ӨГӨГДӨЛ ХОЛБОЛТ Өгөгдлийн холболт нь дараах төрлүүдтэй:  Энгийн холболт – зөвхөн нэг утга харуулдаг контролд ашиглагдана.  Нийлмэл холболт – жагсаалт, грид гэх мэт олон өгөгдлийг харуулдаг контролд ашиглагдана. Т.Гантөр 4
  • 5. ӨГӨГДӨЛ ХОЛБОЛТ Өгөгдлийн эх үүсвэр болон контролын хооронд өгөгдлийг холбоход дараах гол объектууд хэрэглэгдэнэ.  Binding – объект болон контролын хооронд энгийн холболт хийнэ.  CurrencyManager – Binding объектуудын жагсаалтыг удирдана. Жагсаалт хэлбэрийн үүсгэврүүдтэй ажилладаг холболтын менежер.  PropertyManager объектын шинжийг контролтой холбох менежер.  BindingContext – контролын бүх холболтын менежерүүдийн мэдээллийг хадгалж зохицуулдаг бөгөөд үүнийг голдуу өгөгдлийн эх үүсвэрт харгалзах холболтын менежерт хандахад ашигладаг. Т.Гантөр 5
  • 7. ӨГӨГДӨЛ ХОЛБОЛТ ЭНГИЙН ХОЛБОЛТ • • Энгийн холболтыг ямарч контролд хэрэглэж болох ба нэг контролын хэд хэдэн шинжид ч зэрэг хэрэглэж болно. Тухайн контролын DataBinding.Add() метод нь өгөгдлийн эх үүсвэрийг контролын пропертуудтай холбох холболтуудын олонлог үүсгэнэ. Т.Гантөр 7
  • 8. ӨГӨГДӨЛ ХОЛБОЛТ ЭНГИЙН ХОЛБОЛТ • DataBindings.Add(string propertyName, object dataSourse, string dataMember) propertyName – тухайн контролын өгөгдөл холбох шинж dataSource – өгөгдлийн эх үүсвэр dataMember – өгөгдлийн эх үүсвэр дэхь талбарын нэр Т.Гантөр 8
  • 9. ӨГӨГДӨЛ ХОЛБОЛТ ЭНГИЙН ХОЛБОЛТ DataTable dt=new DataTable(“User”); SqlConnection conn= common.getConn(); Conn.Open(); SqlCommand cmd=new SqlCommand(“select d.id, fullname, permission, reg_date from (select username, permission, b.id from permission a join [user] b on a.id=permission_id) c join worker d on c.id=d.login_id”, conn); SqlDataReader rdr=cmd.ExecuteReader(); dt.Load(rdr); textBox1.DataBindings.Add(“Text”, dt, ”fullname”); Т.Гантөр 9
  • 10. ӨГӨГДӨЛ ХОЛБОЛТ ЭНГИЙН ХОЛБОЛТ Text1.DataBindings.Add(new Binding (“Text”, ds, ”customers.custName”)); DataTimePicker1.DataBindings.Add(new Binding(“Value”, ds, “customers.CustToOrders.OrderDate ”)); Binding b= new Binding(“Text”, ds, “customers.custToOrders.OrderAmo unt”); Text3.DataBindings.Add(b); Т.Гантөр 10
  • 11. ӨГӨГДӨЛ ХОЛБОЛТ ЭНГИЙН ХОЛБОЛТ • • • • Тухайн контролын нэг пропертид нэг л холболт хийх боломжтой Хэрвээ хоѐр дахь холболт хийхийг оролдвол алдаа үүсэх болно. Үүнээс зайлсхийхийн тулд холболт нэмэх болгондоо өмнө холболт үүссэн эсэхийг шалгаж байх хэрэгтэй Хэрвээ өмнө хийгдсэн холболт байвал түүнийг устгаж байж дараагийн холболтыг хийх хэрэгтэй Т.Гантөр 11
  • 12. ӨГӨГДӨЛ ХОЛБОЛТ ЭНГИЙН ХОЛБОЛТ If(textBox1.DataBindings[“Text”] !=null) textBox1.DataBindings.Remove( textBox1.DataBindings[“Text”]); textBox1.DataBindings.Add(“Text”, dt, “fullname”); Т.Гантөр 12
  • 13. ӨГӨГДӨЛ ХОЛБОЛТ НИЙЛМЭЛ ХОЛБОЛТ • • Нийлмэл холболтоор олон элемэнтийг зэрэг харуулах боломжтой - Жагсаалт хэлбэрээр - Хүснэгт хэлбэрээр Өгөгдлийг харуулж буй хэлбэрээсээ хамааран өгөгдөл холболт нь ялгаатай хийгдэнэ. Т.Гантөр 13
  • 14. ӨГӨГДӨЛ ХОЛБОЛТ ӨГӨГДЛИЙГ ЖАГСААЛТ ХЭЛБЭРИЙН КОНТРОЛД ХОЛБОХ • • Жагсаалт хэлбэрийн ялгаатай хэрэглээтэй контролуудын хувьд өгөгдөл холболтын техник нь адилхан байдаг. Дараах шинжүүд нь ашиглагдана.  DataSourse – өгөгдлийн эх үүсвэр  DisplayMemberконтролд харуулах өгөгдлийн гишүүн  ValueMemberконтролд харагдаж байгаа өгөгдлийн жинхэнэ утгыг илэрхийлэх гишүүн Т.Гантөр 14
  • 15. ӨГӨГДӨЛ ХОЛБОЛТ ӨГӨГДЛИЙГ ЖАГСААЛТ ХЭЛБЭРИЙН КОНТРОЛД ХОЛБОХ Өгөгдөлтэй холбогдсон жагсаалт хэлбэрийн контролуудаас утга сонгоход ValueMember шинжид холбосон талбарын утга SelectedValue шинжид буцна. DisplayMember шинжид холбосон талбарын утга SelectedItem шинжид буцна. Т.Гантөр 15
  • 16. НИЙЛМЭЛ ХОЛБОЛТ ӨГӨГДЛИЙГ ЖАГСААЛТ ХЭЛБЭРИЙН КОНТРОЛД ХОЛБОХ DataTable dt=new DataTable(“User”); SqlConnection conn=common.getConn(); Conn.Open(); SqlCommand cmd=new SqlCommand(“select d.id, fullname, permission, reg_date from (select username, permission, b.id from permission a join [user] b on a.id=permission_id) c join worker d on c.id=d.login_id”, conn); SqlDataReader rdr=cmd.ExecuteReader(); dt.Load(rdr); listBox1.DataSource=dt; listBox1.ValueMember=“id”; listBox1.DisplayMember=“Fullname”; Т.Гантөр 16
  • 17. НИЙЛМЭЛ ХОЛБОЛТ ӨГӨГДЛИЙГ ЖАГСААЛТ ХЭЛБЭРИЙН КОНТРОЛД ХОЛБОХ • • Жагсаалт хэлбэрийн контролыг нэг өгөгдөл харуулах бусад контролуудтай хавсарч хэрэглэснээр нэг мөрийн хэд хэдэн баганыг зэрэг харуулах боломжтой. Үүний тулд тухайн контролуудын өгөгдлийн эх үүсвэрийг адил тодорхойлох шаардлагатай Т.Гантөр 17
  • 18. НИЙЛМЭЛ ХОЛБОЛТ • • • Контролд өгөгдөл холболтыг  нэг чиглэлтэйгээр  хоѐр чиглэлтэйгээр хийж болно. Өгөгдлийг зөвхөн дэлгэц дээр харуулахаар холбож байгаа бол нэг чиглэлтэй холболт болно. Шинэ мөр нэмэх зэргээр цаад өгөгдлийн эх үүсвэрийг өөрчлөх эсвэл контрол дээр харагдаж байгаа утгыг өөрчлөх замаар хийгдсэн өөрчлөлт нь эх үүсвэрт нөлөөлөх бол хоѐр чиглэлтэй холболот болно. Т.Гантөр 18
  • 19. НИЙЛМЭЛ ХОЛБОЛТ Өгөгдлийн эх үүсвэр болон контролын хооронд өгөгдлийг хоѐр чиглэлтэйгээр холбохын тулд хэд хэдэн объектууд хамтарч ажиллах шаардлагатай болно. Т.Гантөр 19
  • 20. DATAGRIDVIEW КОНТРОЛ • • DataGridView контрол нь олон төрлийн өгөгдлийн эх үүсвэрийн өгөгдлийг тэгш өнцөгт хүснэгт хэлбэрээр харуулах , засварлах боломжийг олгоно. DataGridView контрол нь маш олон гишүүдтэй, маш их боломжтой контрол юм. Т.Гантөр 20
  • 21. DATAGRIDVIEW КОНТРОЛ Контролын бүтэц • • • DataGridView контрол нь нүднүүд(cells) болон зурваснууд(bands) гэсэн үндсэн хоѐр төрлийн объектоос бүрддэг. Нүднүүд нь DataGridViewCell классаас удамшина DataGridViewColumn, DataGridViewRow гэсэн хоѐр төрлийн зурвас нь DataGridViewBand классаас удамшина. Т.Гантөр 21
  • 23. DATAGRIDVIEW КОНТРОЛ Контролын бүтэц- Нүд • • • • DataGridView контролын үндсэн нэгж нь нүд юм. Харагдах байдал нь нүднүүд дээр төвлөрөх ба өгөгдөл оруулалт нь нүднүүдээр гүйцэтгэгдэнэ. Нүдэнд хандахдаа мөрийн(DataGridViewRow) Cells олонлогийг ашиглана. Сонгогдсон нүдэнд хандах бол DataGridView контролын SelectedCells Т.Гантөр олонлогийг ашиглана. 23
  • 24. DATAGRIDVIEW КОНТРОЛ Контролын бүтэц- Нүд • DataGridView контрол нь дараах төрлийн нүднүүдтэй байж болно.  DataGridViewTextBoxCell DataGridViewButtonCell DataGridViewLinkCell DataGridViewCheckBoxCell DataGridViewComboBoxCell DataGridViewImageCell DataGridViewHeaderCell DataGridViewRowHeaderCell DataGridViewColumnHeaderCell DataGridViewTopLeftHeaderCell Т.Гантөр 24
  • 25. DATAGRIDVIEW КОНТРОЛ Контролын бүтэц- Нүд Багш: Магситр Т.Гантөр 25
  • 26. DATAGRIDVIEW КОНТРОЛ Контролын бүтэц- Багана • • DataGridView контролын Columns олонлогийг ашиглан баганад хандана. Харин сонгогдсон багануудад хандах бол SelectedColumns олонлогийг ашиглана. Дараах төрлийн баганууд байна.  DataGridViewButtonColumn DataGridViewCheckBoxColumn DataGridViewComboBoxColumn DataGridViewImageColumn DataGridViewTextBoxColumn DataGridViewLinkColumn Т.Гантөр 26
  • 28. DATAGRIDVIEW КОНТРОЛ Контролын бүтэц- Мөр • DataGridView контролын Rows олонлогийг ашиглан мөрөнд хандана. Харин сонгогдсон мөрүүдэд хандах бол SelectedRows олонлогийг ашиглан. Т.Гантөр 28
  • 31. DATAGRIDVIEW КОНТРОЛ Багана тодорхойлох DataGridViewTextBoxCell cell=new DataGridViewTextBoxCell(); DataGridViewColumn col=new DataGridViewColumn(cell); Col.HeaderText=“Киноны нэр”; Col.Width=150; dataGridView1.Columns.Add(col); dataGridView1.ColumnCount=3; dataGridView1.Columns[1].HeaderText=“Он”; dataGridView1.Columns[2].HeaderText=“Найруулагч”; dataGridView1.Columns[1].Name=“Year”; dataGridView1.Columns[1].Width=“80”; dataGridView1.Columns[2].Width=“110”; Т.Гантөр 31
  • 32. DATAGRIDVIEW КОНТРОЛ Мөр нэмэх object[] row1={“Casablanca”, “1942”, “Micheal Curtiz”}; dataGridView1.Rows.Add(row1); object[] row2={“Raging Bull”, “1980”, “Martin Scorsese”}; dataGridView1.Rows.Add(row2); object[] row3={“On the Waterfront”, “1954”, “Elia Kazan”}; dataGridView1.Rows.Add(row3); object[] row4={“Some Like it Hot”, “1959”, “Billy Wilder”}; dataGridView1.Rows.Add(row4); 32 Багш: Магситр Т.Гантөр
  • 33. DATAGRIDVIEW КОНТРОЛ DataGridView классын чухал шинжүүд Шинжүүд Тайлбар AllowUserToAddRows Хэрэглэгч мөр нэмж болох эсэхийг тодорхойлно. AllowUserToDeleteRows Хэрэглэгч мөр устгаж болох эсэхийг тодорхойлно. AllowUserToOrderColumns Хэрэглэгч багануудын байрлалыг солих эсэхийг тодорхойлно. AllowUserToResizeColumns Хэрэглэгч баганын хэмжээг өөрчилж болох эсэхийг тодорхойлно. AllowUserToResizeRows Хэрэглэгч мөрийн хэмжээг өөрчилж болох эсэхийг тодорхойлно. Багш: Магситр Т.Гантөр 33
  • 34. DATAGRIDVIEW КОНТРОЛ DataGridView классын чухал шинжүүд • dataGridView1.AllowUserToAddRows=true; • dataGridView1.AllowUserToAddRows=false; Багш: Магситр Т.Гантөр 34
  • 35. DATAGRIDVIEW КОНТРОЛ DataGridView классын чухал шинжүүд Шинжүүд Тайлбар SelectionMode Мөр сонгох горимыг DataGridViewSelectionMode төрлөөр тодорхойлно. MultiSelect Тухайн нэг эгшинд нэгээс олон мөр , багана , мөр сонгож болох эсэхийг тодорхойлно. CurrentCell Идэвхитэй нүдийг тодорхойлно, буцаана CurrentCellAddress Идэвхитэй нүдний мөр, баганын индексийг буцаана. CurrentRows Идэвхитэй нүдийг агуулж буй мөрийг буцаана. NewRowIndex Шинэ бичлэгийн мөрийн индексийг буцаана. Багш: Магситр Т.Гантөр 35
  • 36. DATAGRIDVIEW КОНТРОЛ DataGridView классын чухал шинжүүд Шинжүүд CellBorderStyle DefaultCellStyle GridColor BackColor BackgroundColor BorderStyle Тайлбар Нүднүүдийн хүрээний хэлбэрийг мөр хооронд, багана хооронд, мөр багана хооронд ямар байхыг тодорхойлно. Нүдний хэлбэрийг тодорхойлно. Нүднүүдийг хүрээлэх шугамнуудын өнгийг тодорхойлно. Контролын дэвсгэр өнгийг тодорхойлно. Нүднүүдийн дэвсгэр өнгийг тодорхойлно. Контролын хүрээний хэлбэрийг тодорхойлно. AlternatingRowsDefaul Сондгой дугаартай мөрийн харагдах хэлбэрийг тодорхойлно. tCellStyle Багш: Магситр Т.Гантөр 36
  • 37. DATAGRIDVIEW КОНТРОЛ DataGridView классын чухал шинжүүд DataGridViewCellStyle style=new DataGridViewCellStyle(); style.BackColor=Color.Bisque; style.Font=new Font(“Arial”,8,FontStyle.Bold); Style.ForeColor=Color.Navy; Style.Paddin=new Padding(5,2,5,5); style.SelectionBackColor=Color.LightBlue; dataGridView1.DefaultCellStyle=style; Багш: Магситр Т.Гантөр 37
  • 38. DATAGRIDVIEW КОНТРОЛ DataGridView классын чухал методууд Методууд BeginEdit() CancelEdit() EndEdit() CommitEdit() Тайлбар Идэвхитэй нүдийг засварлах горимд шилжүүлнэ. Идэвхитэй нүдэнд хийсэн өөрчлөлтүүдийг хэрэгсэхгүй болгож, засварлах горимыг цуцлана. идэвхитэй нүдний засварлах үйлдлийг дуусгана. Идэвхитэй нүдийг засварлах горимыг дуусгахгүйгээр өөрчлөлтийг хэрэгжүүлнэ. Багш: Магситр Т.Гантөр 38
  • 39. DATAGRIDVIEW КОНТРОЛ DataGridView классын чухал үзэгдлүүд Үзэгдлүүд Тайлбар CellValueChanged Нүдний утга өөрчлөгдөх үед үүснэ. CurrentCellChanged Идэвхитэй нүдний утга өөрчлөгдөх үед үүснэ. CellClick Нүдэн дээр дарахад үүснэ. CellContentClick Нүдний агуулга дээр дарахад үүснэ. CellEnter, CellLeave Нүд фокус авах, алдахад үүснэ. ColumnHeaderMouseClick ColumnHeaderMouseDoubleClick Баганын толгой дээр дарахад үүснэ. RowEnter, RowLeave Мөр фокус авах, алдахад үүснэ. RowHeaderMouseClick RowHeaderMouseDoubleClick Мөрийн толгой дээр дарахад үүснэ. UserAddedRow, UserDeletedRow Мөр нэмэх, устгах үед үүснэ. 39
  • 40. DATAGRIDVIEW КОНТРОЛ DataGridView классын чухал үзэгдлүүд Үзэгдлүүд Тайлбар CellValueChanged Нүдний утга өөрчлөгдөхөд CurrentCellChanged Идэвхитэй нүд өөрчлөгдөхөд CellClick Нүдэн дээр дарахад CellContentClick Нүдний агуулга дээр дарахад CellEnter, CellLeave Нүд идэвхижихэд, идэвхигүй болоход ColumnHeaderMouseClick Баганын толгой дээр хулганаар дарахад ColumnHeaderMouseDo Баганын толгой дээр хулганаар хоѐр дарахад ubleClick RowEnter, RowLeave Мөр идэвхижихэд, идэвхигүй болоход 40
  • 41. DATAGRIDVIEW КОНТРОЛ DataGridViewColumn классын чухал гишүүд Шинжүүд Тайлбар AutoSizeMode Баганын өргөнийг автоматаар тохируулах горимыг тодорхойлно, буцаана. HeaderCell Баганын толгойг тодорхойлно, буцаана. HeaderText Баганын толгойн нүдний гарчиг текстийг тодор/буц Frozen Баганыг хөдөлгөөнгүй болгох эсэхийг тодор/буц MininumWidth Баганын өргөнийг хамгийн бага хязгаарыг тодор/буц Width Баганын өргөнийг тодорхойлно ,буцаана ReadOnly Баганын утгуудыг засаж болох эсэхийг тодорхойлно. SortMode Баганын эрэмбэлэх горимыг тодорхойлно ,буцаана. ValueType Баганын нүднүүдийн авах утгын төрлийг буцаана. 41
  • 42. DATAGRIDVIEW КОНТРОЛ DataGridViewColumn классын чухал гишүүд dataGridView1.Columns[0].Frozen=true; //хөдөлгөөнгүй багана dataGridView1.Columns[2].ReadOnly=true; //зөвхөн уншигдах багана dataGridView1.Columns[0].MinimumWidth=10 0; //өргөний хязгаарлалт dataGridView1.Columns[0].SortMode=DataGri dViewColumnSortMode.NotSortable; //эрэмбэлэлт 42
  • 43. DATAGRIDVIEW КОНТРОЛ DataGridViewRow классын чухал гишүүд Шинжүүд Тайлбар Cells Мөрөн дэх нүднүүдийн олонлог буцаана. IsNewRow Тухайн мөр нь шинэ бичлэгт зориулсан мөр мөн эсэхийг буцаана. Selected Тухайн мөр сонгогдсон эсэхийг тодорхойлно, буцаана Height Мөрийн өндрийг тодорхойлно, буцаана 43
  • 44. DATAGRIDVIEW КОНТРОЛ DataGridViewCell классын чухал гишүүд Шинжүүд Тайлбар ColumnIndex Тухайн нүдний байрлах баганын индексийг буцаана RowIndex Тухайн нүдний байрлах мөрийн индексийг буцаана Value Тухайн нүдний утгыг буцаана OwningColumn Тухайн нүдийг агуулж байгаа баганыг буцаана OwningRow Тухайн нүдийг агуулж байгаа мөрийг буцаана. 44
  • 45. НИЙЛМЭЛ ХОЛБОЛТ Өгөгдлийг хүснэгт хэлбэрийн контролд холбох • Хүснэгт хэлбэрийн контрол буюу DataGridView контролд өгөгдөл холбохдоо дараах пропертуудыг ашиглана.  DataSource – өгөгдлийн эх үүсвэрийг тодорхойлно.  DataMember – өгөгдлийн эх үүсвэр дэх хүснэгтийн нэрийг тодорхойлно.  DataPropertyName – багананд холбох өгөгдлийн үүсвэрийг тодорхойлно. Багш: Магситр Т.Гантөр 45
  • 46. НИЙЛМЭЛ ХОЛБОЛТ Өгөгдлийг хүснэгт хэлбэрийн контролд холбох String strSQL= “sp_selectReader”; SqlDataAdapter da = new SqlDataAdapter(strSQL, strconn); DataSet ds = new DataSet(); da.Fill(ds, “reader”); dgReader.DataSource = ds; dgReader.DataMember=“reader”; dgReader.Columns.Clear(); dgReader.Columns.Add(“id”,”id”); dgReader.Columns[“id”].DataPropertyName=“id”; dgReader.Columns[“id”].Visible=false; dgReader.Columns.Add(“regnum”,”Бүртгэлийн дугаар”); dgReader.Columns[“regnum”].DataPropertyName= “card_number”; Багш: Магситр Т.Гантөр 46
  • 47. НИЙЛМЭЛ ХОЛБОЛТ Мастер- дагуул DataGridView • DataGridView контролын Rows олонлогийг ашиглан мөрөнд хандана. Харин сонгогдсон мөрүүдэд хандах бол SelectedRows олонлогийг ашиглана. Багш: Магситр Т.Гантөр 47
  • 48. • BindingSource компонент нь контролыг үндсэн өгөгдлийн эх үүсвэртэй холбох үйл ажиллагааг хялбарчлах зорилгоор бүтээгдсэн. • BindingSource компонент нь контрол болон өгөгдлийн эх үүсвэрийн хооронд хоѐр чиглэлд өгөгдөл дамжуулах үүргийг гүйцэтгэнэ. Өөрөөр хэлбэл командуудаах дамжуулан форм дээрх өгөгдлүүдийг өгөгдлийн үндсэн жагсаалтруу илгээх боломжийг олгодог. Багш: Магситр Т.Гантөр 48
  • 50. Өгөгдлийн эх үүсвэрийг тодорхойлох • • BindingSource контролд өгөгдлийн эх үүсвэрийг тодорхойлохдоо DataSource шинжийг нь ашиглана. Харин контролуудын хувьд өгөгдлийн эх үүсвэр тодорхойлох шинжид BindingSource контролыг холбож өгнө. Багш: Магситр Т.Гантөр 50
  • 51. Өгөгдлийн эх үүсвэрийг тодорхойлох SqlConnection conn = new SqlConnection(“data sourse=bataa; database=library; user id=sa; password=12345”); BindingSource bs = new BindingSourse(); SqlCommand cmd = new SqlCommand(“select*from author”, conn); Conn.Open(); bs.DataSource=cmd.ExecuteReader(); textBox1.DataBindings.Add(“Text”, bs, “author_fullname”); Conn.Close(); Багш: Магситр Т.Гантөр 51
  • 52. Өгөгдлийн эх үүсвэрийг тодорхойлох SqlConnection conn = new SqlConnection(“data sourse=bataa; database=library; user id=sa; password=12345”); BindingSource bs = new BindingSourse(); da.Fill(ds, “author”); bs.DataSource = ds.Tables[0]; dataGridView1.DataSource=bs; Багш: Магситр Т.Гантөр 52
  • 53. Өгөгдлийг боловсруулах BindingSource контрол нь завсарын эх үүсвэр дэхь өгөгдөлрүү хандах, боловсруулах боломжоор хангах гишүүдтэй байдаг. Гишүүд Тайлбар List Контролтой холбогдсон жагсаалтыг буцаана. Position Идэвхитэй элемэнтийг байрлалыг тодорхойлно, буцаана Current Өгөгдлийн эх үүсвэрийн идэвхитэй элемэнтийг буцаана Sort Өгөгдлийг эрэмбэлэх талбарын нэр, эрэмбийн чиглэлийг тодорхойлно, буцаана. Filter Харуулах өгөгдлийг шүүхэд ашиглах илэрхийллийг тодорхойлно, буцаана. Багш: Магситр Т.Гантөр 53
  • 54. Өгөгдлийг боловсруулах Гишүүд Тайлбар MoveFirst() Жагсаалтын эхний элемэнтийг идэвхижүүлнэ MoveLast() Жагсаалтын сүүлийн элемэнтийг идэвхижүүлнэ MovePrevious() Жагсаалтын өмнөх элемэнтийг идэвхижүүлнэ MoveNext() Жагсаалтын дараагийн элемэнтийг идэвхижүүлнэ RemoveCurrent() Жагсаалтаас идэвхитэй элемэнтийг устгана AddNew() Жагсаалтад шинэ элемэнт нэмнэ EndEdit() Завсрын эх үүсвэрт хийгдсэн өөрчлөлтийг хэрэгжүүлнэ. CancelEdit() Засврын эх үүсвэрт хийгдсэн өөрчлөлтийг цуцлана. Багш: Магситр Т.Гантөр 54
  • 55. Өгөгдлийг боловсруулах SqlDataAdapter da = new SqlDataAdapter(“select*from book_sub”, “data source=bataa; database=library; user id=sa; password=12345”); DataSet ds =new DataSet(); BindingSource bs = new BindingSourse(); da.Fill(ds, “type”); bs.DataSource= ds.Tables[0]; bs.Sort = “sub_type ASC”; bs.Filter=“book_type_id=4”; dataGridView1.DataSource=bs; Багш: Магситр Т.Гантөр 55
  • 57. • BindingNavigator контрол нь форм дээрх өгөгдөлтэй холбогдсон контролуудыг хэрэглэнчийн интерфейсээр удирдах боломжийг олгоно. Ө.х BindingSource компненттой уялдаж ажиллан , форм дээрх өгөгдлийг боловсруулах, удирдах боломжийг хэрэглэгчид олгодог контрол юм. Багш: Магситр Т.Гантөр 57
  • 58. • • BindingNavigator контрол нь өгөгдөл нэмэх, өгөгдөл устгах, өгөгдлийг удирдах гэх мэт өгөгдөлтэй ажиллах ихэнх стандарт үйлдлүүдэд зориулагдсан ToolStripItem объектуудын нэгдэл болсон хэрэгслийн мөр байдлаар зохион байгуулагдсан байдаг. BindingNavigator контролд өгөгдлийн эх үүсвэрийг нь BindingSource компонентоор тодорхойлно. Багш: Магситр Т.Гантөр 58
  • 60. Хэрэглэгчийн контрол BindingNavigatorын гишүүд BindingSource-ын гишүүд Эхний элемэнтрүү шилжүүлэх MoveFirstItem MoveFirst Өмнөх элемэнтрүү шилжүүлэх MovePreviousItem MovePrevious Идэвхитэй элемэнтийн байрлал PositionItem Current Элемэнтийн тоо CountItem Count Дараагийн элемэнтрүү MoveNextItem MoveNext Сүүлчийн элемэнтрүү шилжүүлэх MoveLastItem MoveLast Шинээр элемэнт нэмэх AddNewItem AddNew Идэвхитэй элемэнтийг устгах DeleteItem RemoveCurrent шилжүүлэх 60
  • 62. SqlDataAdapter da = new SqlDataAdapter(“select*from book_sub”, “data source=bataa; database=library; user id=sa; password=12345”); DataSet ds =new DataSet(); BindingSource bs = new BindingSourse(); private void Form1_Load(object sender, EventArgs e) { da.Fill(ds, “type”); bs.DataSource= ds.Tables[0]; bindingNavigator1.BindingSource=bs; dataGridView1.DataSource=bs; } Багш: Магситр Т.Гантөр 62
  • 63. private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e) { dataGridView1.BeginEdit(true); } private void btnSave_Click(object sender, EventArgs e) { SqlCommandBuilder cmdb= new SqlCommandBuilder(da); daUpdate(ds.Tables[0]); } Багш: Магситр Т.Гантөр 63