lecture7 8

64
КОНТРОЛД ӨГӨГДӨЛ ХОЛБОХ ADO.NET Лекц №7-8 1

Upload: gantur-togtokh

Post on 08-Jul-2015

388 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Lecture7 8

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

ADO.NET

Лекц №7-8

1

Page 2: Lecture7 8

АГУУЛГА

Өгөгдөл холболт

Энгийн холболт

Нийлмэл холболт

Өгөгдөлтэй ажиллах контролууд

2

Лекц №7-8

Page 3: Lecture7 8

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

Өгөгдөл холболт гэдэг нь контролын агуулгыгөгөгдлийн эх үүсвэртэй холбохыг хэлнэ.

Контрол нь өгөгдлийн эх үүсвэрлүү шуудхолболт хийдэггүй.

Контрол нь завсарын эх үүсвэртэй, завсрын эхүүсвэр нь өгөгдлийн эх үүсвэртэй холбогдоно.

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

Завсрын эх үүсвэр гэдэг нь санах ойд байрлахөгөгдлийн төлөөлөл юм.

3Т.Гантөр

Page 4: Lecture7 8

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

Өгөгдлийн холболт нь дараах төрлүүдтэй:

Энгийн холболт – зөвхөн нэг утга харуулдаг

контролд ашиглагдана.

Нийлмэл холболт – жагсаалт, грид гэх мэт

олон өгөгдлийг харуулдаг контролд

ашиглагдана.

4Т.Гантөр

Page 5: Lecture7 8

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

Binding – объект болон контролын хооронд энгийнхолболт хийнэ.

CurrencyManager – Binding объектуудын жагсаалтыгудирдана. Жагсаалт хэлбэрийн үүсгэврүүдтэйажилладаг холболтын менежер.

PropertyManager - объектын шинжийг контролтойхолбох менежер.

BindingContext – контролын бүх холболтынменежерүүдийн мэдээллийг хадгалж зохицуулдагбөгөөд үүнийг голдуу өгөгдлийн эх үүсвэрт харгалзаххолболтын менежерт хандахад ашигладаг.

5

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

Т.Гантөр

Page 6: Lecture7 8

6

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

Т.Гантөр

Page 7: Lecture7 8

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

• Энгийн холболтыг ямарч контролд

хэрэглэж болох ба нэг контролын хэд

хэдэн шинжид ч зэрэг хэрэглэж болно.

• Тухайн контролын DataBinding.Add()

метод нь өгөгдлийн эх үүсвэрийг

контролын пропертуудтай холбох

холболтуудын олонлог үүсгэнэ.

7

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

Т.Гантөр

Page 8: Lecture7 8

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

• DataBindings.Add(string propertyName, object

dataSourse, string dataMember)

propertyName – тухайн контролын өгөгдөл

холбох шинж

dataSource – өгөгдлийн эх үүсвэр

dataMember – өгөгдлийн эх үүсвэр дэхь

талбарын нэр

8

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

Т.Гантөр

Page 9: Lecture7 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

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

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

Т.Гантөр

Page 10: Lecture7 8

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

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

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

Т.Гантөр

Page 11: Lecture7 8

• Тухайн контролын нэг пропертид нэг л холболт хийх боломжтой

• Хэрвээ хоѐр дахь холболт хийхийг оролдвол алдаа үүсэх болно.

• Үүнээс зайлсхийхийн тулд холболт нэмэх болгондоо өмнө холболт үүссэн эсэхийг шалгаж байх хэрэгтэй

• Хэрвээ өмнө хийгдсэн холболт байвал түүнийг устгаж байж дараагийн холболтыг хийх хэрэгтэй

11

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

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

Т.Гантөр

Page 12: Lecture7 8

If(textBox1.DataBindings[“Text”] !=null)

textBox1.DataBindings.Remove(

textBox1.DataBindings[“Text”]);

textBox1.DataBindings.Add(“Text”, dt, “fullname”);

12

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

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

Т.Гантөр

Page 13: Lecture7 8

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

• Нийлмэл холболтоор олон элемэнтийг

зэрэг харуулах боломжтой

- Жагсаалт хэлбэрээр

- Хүснэгт хэлбэрээр

• Өгөгдлийг харуулж буй хэлбэрээсээ

хамааран өгөгдөл холболт нь ялгаатай

хийгдэнэ.

13

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

Т.Гантөр

Page 14: Lecture7 8

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

• Жагсаалт хэлбэрийн ялгаатай хэрэглээтэйконтролуудын хувьд өгөгдөл холболтынтехник нь адилхан байдаг.

• Дараах шинжүүд нь ашиглагдана.

DataSourse – өгөгдлийн эх үүсвэр

DisplayMember- контролд харуулахөгөгдлийн гишүүн

ValueMember- контролд харагдаж байгааөгөгдлийн жинхэнэ утгыг илэрхийлэхгишүүн

14

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

Т.Гантөр

Page 15: Lecture7 8

Өгөгдөлтэй холбогдсон жагсаалт хэлбэрийн

контролуудаас утга сонгоход

ValueMember шинжид холбосон

талбарын утга SelectedValue шинжид

буцна.

DisplayMember шинжид холбосон

талбарын утга SelectedItem шинжид буцна.

15

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

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

Т.Гантөр

Page 16: Lecture7 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);

listBox1.DataSource=dt;

listBox1.ValueMember=“id”;

listBox1.DisplayMember=“Fullname”;

16

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

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

Т.Гантөр

Page 17: Lecture7 8

• Жагсаалт хэлбэрийн контролыг нэг

өгөгдөл харуулах бусад контролуудтай

хавсарч хэрэглэснээр нэг мөрийн хэд

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

• Үүний тулд тухайн контролуудын

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

шаардлагатай

17

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

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

Т.Гантөр

Page 18: Lecture7 8

• Контролд өгөгдөл холболтыг

нэг чиглэлтэйгээр

хоѐр чиглэлтэйгээр хийж болно.

• Өгөгдлийг зөвхөн дэлгэц дээр харуулахаар

холбож байгаа бол нэг чиглэлтэй холболт

болно.

• Шинэ мөр нэмэх зэргээр цаад өгөгдлийн эх

үүсвэрийг өөрчлөх эсвэл контрол дээр

харагдаж байгаа утгыг өөрчлөх замаар

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

бол хоѐр чиглэлтэй холболот болно.18

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

Т.Гантөр

Page 19: Lecture7 8

Өгөгдлийн эх үүсвэр болон контролын

хооронд өгөгдлийг хоѐр чиглэлтэйгээр

холбохын тулд хэд хэдэн объектууд

хамтарч ажиллах шаардлагатай болно.

19

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

Т.Гантөр

Page 20: Lecture7 8

DATAGRIDVIEW КОНТРОЛ

• DataGridView контрол нь олон төрлийн

өгөгдлийн эх үүсвэрийн өгөгдлийг тэгш

өнцөгт хүснэгт хэлбэрээр харуулах ,

засварлах боломжийг олгоно.

• DataGridView контрол нь маш олон

гишүүдтэй, маш их боломжтой контрол

юм.

20Т.Гантөр

Page 21: Lecture7 8

Контролын бүтэц

21

• DataGridView контрол нь нүднүүд(cells)

болон зурваснууд(bands) гэсэн үндсэн

хоѐр төрлийн объектоос бүрддэг.

• Нүднүүд нь DataGridViewCell классаас

удамшина

• DataGridViewColumn, DataGridViewRow

гэсэн хоѐр төрлийн зурвас нь

DataGridViewBand классаас удамшина.

DATAGRIDVIEW КОНТРОЛ

Т.Гантөр

Page 22: Lecture7 8

22

DATAGRIDVIEW КОНТРОЛ

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

Т.Гантөр

Page 23: Lecture7 8

• DataGridView контролын үндсэн нэгж нь

нүд юм.

• Харагдах байдал нь нүднүүд дээр

төвлөрөх ба өгөгдөл оруулалт нь

нүднүүдээр гүйцэтгэгдэнэ.

• Нүдэнд хандахдаа

мөрийн(DataGridViewRow) Cells

олонлогийг ашиглана.

• Сонгогдсон нүдэнд хандах бол

DataGridView контролын SelectedCells

олонлогийг ашиглана. 23

Контролын бүтэц- Нүд

DATAGRIDVIEW КОНТРОЛ

Т.Гантөр

Page 24: Lecture7 8

• DataGridView контрол нь дараах төрлийн нүднүүдтэй байж болно.

DataGridViewTextBoxCell

DataGridViewButtonCell

DataGridViewLinkCell

DataGridViewCheckBoxCell

DataGridViewComboBoxCell

DataGridViewImageCell

DataGridViewHeaderCell

DataGridViewRowHeaderCell

DataGridViewColumnHeaderCell

DataGridViewTopLeftHeaderCell

24

Контролын бүтэц- Нүд

DATAGRIDVIEW КОНТРОЛ

Т.Гантөр

Page 25: Lecture7 8

25

Контролын бүтэц- Нүд

DATAGRIDVIEW КОНТРОЛ

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

Page 26: Lecture7 8

• DataGridView контролын Columnsолонлогийг ашиглан баганад хандана. Харин сонгогдсон багануудад хандах бол SelectedColumns олонлогийг ашиглана.

• Дараах төрлийн баганууд байна.

DataGridViewButtonColumn

DataGridViewCheckBoxColumn

DataGridViewComboBoxColumn

DataGridViewImageColumn

DataGridViewTextBoxColumn

DataGridViewLinkColumn

26

Контролын бүтэц- Багана

DATAGRIDVIEW КОНТРОЛ

Т.Гантөр

Page 27: Lecture7 8

27

Контролын бүтэц- Багана

DATAGRIDVIEW КОНТРОЛ

Т.Гантөр

Page 28: Lecture7 8

• DataGridView контролын Rows олонлогийг

ашиглан мөрөнд хандана. Харин

сонгогдсон мөрүүдэд хандах бол

SelectedRows олонлогийг ашиглан.

28

Контролын бүтэц- Мөр

DATAGRIDVIEW КОНТРОЛ

Т.Гантөр

Page 29: Lecture7 8

29

DATAGRIDVIEW КОНТРОЛ

Контролын бүтэц- Мөр

Т.Гантөр

Page 30: Lecture7 8

30

Контролын бүтэц

DATAGRIDVIEW КОНТРОЛ

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

Page 31: Lecture7 8

Багана тодорхойлох

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 КОНТРОЛ

Т.Гантөр

Page 32: Lecture7 8

Мөр нэмэх

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 КОНТРОЛ

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

Page 33: Lecture7 8

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

Шинжүүд Тайлбар

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

тодорхойлно.

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

тодорхойлно.

AllowUserToOrderColumns Хэрэглэгч багануудын байрлалыг

солих эсэхийг тодорхойлно.

AllowUserToResizeColumns Хэрэглэгч баганын хэмжээг өөрчилж

болох эсэхийг тодорхойлно.

AllowUserToResizeRows Хэрэглэгч мөрийн хэмжээг өөрчилж

болох эсэхийг тодорхойлно.

33

DATAGRIDVIEW КОНТРОЛ

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

Page 34: Lecture7 8

34

• dataGridView1.AllowUserToAddRows=false;

• dataGridView1.AllowUserToAddRows=true;

DATAGRIDVIEW КОНТРОЛ

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

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

Page 35: Lecture7 8

Шинжүүд Тайлбар

SelectionMode Мөр сонгох горимыг DataGridViewSelectionMode

төрлөөр тодорхойлно.

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

сонгож болох эсэхийг тодорхойлно.

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

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

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

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

35

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

DATAGRIDVIEW КОНТРОЛ

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

Page 36: Lecture7 8

36

Шинжүүд Тайлбар

CellBorderStyleНүднүүдийн хүрээний хэлбэрийг мөр хооронд, багана

хооронд, мөр багана хооронд ямар байхыг

тодорхойлно.

DefaultCellStyleНүдний хэлбэрийг тодорхойлно.

GridColorНүднүүдийг хүрээлэх шугамнуудын өнгийг

тодорхойлно.

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

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

BorderStyle Контролын хүрээний хэлбэрийг тодорхойлно.

AlternatingRowsDefaul

tCellStyle

Сондгой дугаартай мөрийн харагдах хэлбэрийг

тодорхойлно.

DATAGRIDVIEW КОНТРОЛ

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

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

Page 37: Lecture7 8

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 классын чухал шинжүүд

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

Page 38: Lecture7 8

DataGridView классын чухал методууд

Методууд Тайлбар

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

CancelEdit()Идэвхитэй нүдэнд хийсэн өөрчлөлтүүдийг

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

EndEdit()идэвхитэй нүдний засварлах үйлдлийг дуусгана.

CommitEdit()Идэвхитэй нүдийг засварлах горимыг

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

38

DATAGRIDVIEW КОНТРОЛ

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

Page 39: Lecture7 8

DataGridView классын чухал үзэгдлүүд

Үзэгдлүүд Тайлбар

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

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

үүснэ.

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

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

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

ColumnHeaderMouseClick

ColumnHeaderMouseDoubleClick

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

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

RowHeaderMouseClick

RowHeaderMouseDoubleClick

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

UserAddedRow, UserDeletedRow Мөр нэмэх, устгах үед үүснэ.39

DATAGRIDVIEW КОНТРОЛ

Page 40: Lecture7 8

Үзэгдлүүд Тайлбар

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

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

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

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

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

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

ColumnHeaderMouseDo

ubleClick

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

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

DATAGRIDVIEW КОНТРОЛ

DataGridView классын чухал үзэгдлүүд

Page 41: Lecture7 8

DataGridViewColumn классын чухал гишүүд

Шинжүүд Тайлбар

AutoSizeMode Баганын өргөнийг автоматаар тохируулах горимыг

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

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

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

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

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

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

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

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

ValueType Баганын нүднүүдийн авах утгын төрлийг буцаана.

41

DATAGRIDVIEW КОНТРОЛ

Page 42: Lecture7 8

DataGridViewColumn классын чухал гишүүд

dataGridView1.Columns[0].Frozen=true;

//хөдөлгөөнгүй багана

dataGridView1.Columns[2].ReadOnly=true;

//зөвхөн уншигдах багана

dataGridView1.Columns[0].MinimumWidth=100;

//өргөний хязгаарлалт

dataGridView1.Columns[0].SortMode=DataGridViewColumnSortMode.NotSortable;

//эрэмбэлэлт42

DATAGRIDVIEW КОНТРОЛ

Page 43: Lecture7 8

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

43

Шинжүүд Тайлбар

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

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

буцаана.

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

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

DATAGRIDVIEW КОНТРОЛ

Page 44: Lecture7 8

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

Шинжүүд Тайлбар

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

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

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

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

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

44

DATAGRIDVIEW КОНТРОЛ

Page 45: Lecture7 8

Өгөгдлийг хүснэгт хэлбэрийн контролд холбох

• Хүснэгт хэлбэрийн контрол буюу DataGridView

контролд өгөгдөл холбохдоо дараах

пропертуудыг ашиглана.

DataSource – өгөгдлийн эх үүсвэрийг

тодорхойлно.

DataMember – өгөгдлийн эх үүсвэр дэх

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

DataPropertyName – багананд холбох

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

45

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

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

Page 46: Lecture7 8

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

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

Өгөгдлийг хүснэгт хэлбэрийн контролд холбох

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

Page 47: Lecture7 8

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

• DataGridView контролын Rows олонлогийг

ашиглан мөрөнд хандана. Харин сонгогдсон

мөрүүдэд хандах бол SelectedRows олонлогийг

ашиглана.

47

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

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

Page 48: Lecture7 8

• BindingSource компонент нь контролыг үндсэн

өгөгдлийн эх үүсвэртэй холбох үйл ажиллагааг

хялбарчлах зорилгоор бүтээгдсэн.

• BindingSource компонент нь контрол болон

өгөгдлийн эх үүсвэрийн хооронд хоѐр чиглэлд

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

хэлбэл командуудаах дамжуулан форм дээрх

өгөгдлүүдийг өгөгдлийн үндсэн жагсаалтруу

илгээх боломжийг олгодог.

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

Page 49: Lecture7 8

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

Page 50: Lecture7 8

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

• BindingSource контролд өгөгдлийн эх

үүсвэрийг тодорхойлохдоо DataSource

шинжийг нь ашиглана.

• Харин контролуудын хувьд өгөгдлийн эх

үүсвэр тодорхойлох шинжид BindingSource

контролыг холбож өгнө.

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

Page 51: Lecture7 8

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

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

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

Page 52: Lecture7 8

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

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

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

Page 53: Lecture7 8

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

BindingSource контрол нь завсарын эх үүсвэр

дэхь өгөгдөлрүү хандах, боловсруулах

боломжоор хангах гишүүдтэй байдаг.

53

Гишүүд Тайлбар

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

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

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

Sort Өгөгдлийг эрэмбэлэх талбарын нэр, эрэмбийн чиглэлийг

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

Filter Харуулах өгөгдлийг шүүхэд ашиглах илэрхийллийг

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

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

Page 54: Lecture7 8

Гишүүд Тайлбар

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

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

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

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

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

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

EndEdit() Завсрын эх үүсвэрт хийгдсэн өөрчлөлтийг

хэрэгжүүлнэ.

CancelEdit() Засврын эх үүсвэрт хийгдсэн өөрчлөлтийг цуцлана.

54

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

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

Page 55: Lecture7 8

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

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

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

Page 56: Lecture7 8

56

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

Page 57: Lecture7 8

• BindingNavigator контрол нь форм дээрх

өгөгдөлтэй холбогдсон контролуудыг

хэрэглэнчийн интерфейсээр удирдах

боломжийг олгоно. Ө.х BindingSource

компненттой уялдаж ажиллан , форм

дээрх өгөгдлийг боловсруулах, удирдах

боломжийг хэрэглэгчид олгодог контрол

юм.

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

Page 58: Lecture7 8

• BindingNavigator контрол нь өгөгдөл нэмэх, өгөгдөл устгах, өгөгдлийг удирдах гэх мэт өгөгдөлтэй ажиллах ихэнх стандарт үйлдлүүдэд зориулагдсан ToolStripItemобъектуудын нэгдэл болсон хэрэгслийн мөр байдлаар зохион байгуулагдсан байдаг.

• BindingNavigator контролд өгөгдлийн эх үүсвэрийг нь BindingSource компонентоор тодорхойлно.

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

Page 59: Lecture7 8

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

Page 60: Lecture7 8

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

ын гишүүд

BindingSource-ын

гишүүд

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

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

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

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

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

шилжүүлэх

MoveNextItem MoveNext

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

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

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

Page 61: Lecture7 8

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

Page 62: Lecture7 8

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Багш: Магситр Т.Гантөр

Page 63: Lecture7 8

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Багш: Магситр Т.Гантөр

Page 64: Lecture7 8

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