Лекц 10

  • 392 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
392
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Лекц2 Лекц- 10
  • 2. Агуулга ADO.NET архетиктур ADO.NET хэрэглээ Холбоотой загвар Салангид загвар
  • 3. ADO.NET нь өгөгдөл нийлүүлэгчээр дамжин өгөгдлийн эх үүсвэрт хандах классуудын олонлог юм. ADO.NET нь өгөгдлийн эх үүсвэрт хандах класуудын олонлог юм. Өгөгдлийн эх үүсвэр гэдэг нь • Холбоост өгөгдлийн сан • Excel хүснэгт • Текст файл  Өгөгдөлд хандахад зориулсан API-г өгөгдөл нийлүүлэгч гэж нэрлэдэг.
  • 4. Нийлүүлэгч класууд нь програмыг өгөгдөлтэй холбох объект, стандарт Sql команд объектуудаар хангадаг. ADO.NET нь  Холбоотой загвар: өгөгдлийн эх үүсвэртэй байнгын холбоото байж бичлэг бичлэгээр нь ажиллах аргыг хэрэглэдэг.  Салангид загвар: өгөгдлийг клиент машин дээр татаж аваад санах ойд Dataset болгон хадгалж локаль өгөгдлийн сан мэтээр ашиглана.
  • 5. ADO.NET архетиктур ADO.NET зохиомж нь нэг талаас хөгжүүлэгч, нөгөө талаас өгөгдөл нийлүүлэгчийн ажлыг хөнгөвчлөхөөр хийгдсэн.  Хөгжүүлэгчийн хувьд ямар ч төрлийн өгөгдлийн эх үүсвэр рүү хандах нийтлэг классуудаар хангагдана.
  • 6. ADO.NET архетиктур
  • 7. OLE DB нийлүүлэгч Өгөгдөл захиалагч болон өгөгдлийн эх үүсвэр хоѐрын дунд үйлчилнэ. OLE DB –н өгөгдөл захиалагч болон нийлүүлэгч нь COM интерфейсээр харьцдаг COM объектууд юм.  COM(Component Object Model) – хэл, платформ, машинаас үл хамааран объектуудтай ажиллах, объектуудын харилцан ажиллагааг дэмжих технологи.
  • 8. OLE DB нийлүүлэгч Өгөгдлийн сан бүтээдэг компаниуд олон тооны OLEDB интерфейсийг нийтлэг өгөгдлийн эх үүсвэрүүдэд зориулж бүтээсэн байдаг. OLEDB нийлүүлэгчийн сул тал нь COM объектуудтай харилцах шаардлагаар хяналттай болон хяналтгүй кодын хооронд сэлгээ хийгдэх учраас хурд муутай байдаг.
  • 9. .NET нийлүүлэгчүүд SQL Server-т зориулсан өгөгдөл нийлүүлэгч  MSSQL 7.0 –оос хойших хувилбарууд дахь өгөгдөлд хандах боломжийг олгоно  Энэ нь хялбар бөгөөд хамгийн сайн гүйцэтгэлтэй. Учир нь ODBC(Open Database Connectivity)эсвэл OLEDB түвшин нэмэхгүйгээр, шууд SQL Server хандахаар хийгдсэн.  System.Data.SqlClient нэймспейсийг ашиглана.
  • 10. .NET нийлүүлэгчүүд OLEDB-д зориулсан өгөгдөл нийлүүлэгч  OLEDB интерфейсүүдтэй холбоход гүүр болгож ашиглана. SQLOLEDB SQL Server-т зориулсан Microsoftийн OLEDB нийлүүлэгч MSDAORA SQL Server-т зориулсан Microsoftийн OLEDB нийлүүлэгч Microsoft.Jet.OLED B.4.0 Microsoft Jet-д зориулсан OLEDB нийлүүлэгч  System.Data.OleDb нэймспейсийг ашиглана
  • 11. .NET нийлүүлэгчүүд
  • 12. .NET нийлүүлэгчүүд Oracle-д зориулсан өгөгдөл нийлүүлэгч  Oracle 8.1.7 –оос хойших хувилбарууд дахь өгөгдөлд хандах боломжийг олгоно.  System.Data.OracleClient нэймспейсийг ашиглана. ODBC-д зориулсан өгөгдөл нийлүүлэгч  ODBC интерфейсүүдтэй холбоход гүүр болгож ашиглана.  System.Data.Odbc нэймспейсийг ашиглана.
  • 13. Хандах класс DbConnection: Өгөгдлийн эх үүсвэр рүү холболт тогтооно. DbCommand : Асуулга болон команд илгээхэд ашиглана. DbDataReader: Эх үүсвэрээс нэг чиглэлийн уншилт хийнэ. DbDataAdapter : DataSet болон өгөгдөл нийлүүлэгчийн хооронд ажиллана.
  • 14. Холбоотой загвар Холбоотой загвар гэдэг нь өгөгдлийн эх үүсвэртэй байнгын холбоотой байж, бичлэг, бичлэгээр нь ажиллах арга юм. Холбоотой загвар нь өгөгдлийн санруу холболт үүсгээд, түүгээр дамжуулан унших, бичих, засах үйлдлийг амьд холболтоор дамжуулан гүйцэтгэх бөгөөд холболт нь үйлдлүүдийг дуусах хүртэл идэвхтэй байдаг.
  • 15. Холбоотой загвар Холбоотой загварт үндсэн классууд нь: ашиглагдах o Connection - өгөгдлийн эх сурвалжруу холбогдох холболтыг тодорхойлдог. o Command - холболтоор дамжин биелэх командыг тодорхойлдог. o DataReader – биелүүлсэн командын үр дүнг хүлээж авна, уншина
  • 16. Холбоотой загвар Холбоотой загварт ашиглагдах үндсэн класууд нь:
  • 17. Холбоотой загвар  Холбоотой загварын алхамууд 1. Холболт үүсгэх  Холбогч мөрийг тодорхойлж, холболтын объектыг үүсгэнэ. SqlConnection con=new SqlConnection(connstr);  Холболтыг нээнэ. conn.open();
  • 18. Холбоотой загвар 2. Асуулга  Команд объектыг үүсгэнэ. string sql=“select movie_title from Movies ORDER BY movie_year”; 3. Командын объект үүсгэх  Биелүүлэх командыг бэлтгэнэ. SqlCommand cmd =new SqlCommand(sql,conn);  Командын үр дүнг хүлээж авах объектыг үүснэ. DbDataReader rdr;
  • 19. Холбоотой загвар 4. DataReader үүсгэх Командыг биелүүлнэ. rdr = cmd.executeReader(); Командын үр дүнг мөр мөрөөр уншина. while(rdr.read()) { listbox1.Items.Add(rdr[“movie_title”]); }
  • 20. Холбоотой загвар 5. Үр дүнгийн объектыг хаана. 6. Холболтыг хаана.  ExecuteReader методод дамжуулж байгаа параметр нь уншигч объектыг хаах үед холболтыг хаана гэдгийг илэрхийлнэ.
  • 21. Холбоотой загвар  Холбогч классууд нь өгөгдлийн эх сурвалжруу холбогдох холболтыг тодорхойлдог.  Өгөгдөл нийлүүлэгч бүрт тохирсон холбогч классууд байдаг.  Жишээ нь: o SqlConnection – SqlClient нэймспейст агуулагдана. o OleDbConnection – OleDb нэймспейст агуулагдана.
  • 22. Гишүүд ConnectionString Холбогч мөр ConnectionTimeout Холболт үүсэхийг хүлээх хугацаа State Холболтын төлөв. ConnectionState төрлийн утгууд байна. Broken – тасарсан Connecting – холбогдож байна Open – нээлттэй Closed – хаагдсан Fetching – өгөгдөл буцааж байна Executing – команд биелүүлж байна
  • 23. Database Холбох өгөгдлийн сангийн нэр Datasource Холбох сервэр эсвэл өгөгдлийн эх сурвалжийн нэр Open() Холболтыг нээнэ Close() Холболтыг хаана CnahgeDatabase() Нээллтэй холболтын хувьд өгөгдлийн санг солих
  • 24. Холбогч мөр өгөгдлийн эх сурвалжруу хандахад шаардлагатай өгөгдөл нийлүүлэгчийн болон хэрэглэгчийн мэдээллийг агуулна. Холболтын объектод холбогч мөрийг параметр болгон дамжуулж өгөгдлийн эх сурвалжруу холболт үүсгэдэг. Мөн холбогч мөрийн ConnectionStringBuilder классаар үүсгэж болно.
  • 25. SqlConnection холбогч класс •SQL Server эрхээр холбогдох string StrConn="Data Source=DB; User ID=User;Password=Password"; SqlConnection conn = new SqlConnection(StrConn);
  • 26. •Windows эрхээр холбогдох string StrConn="Data Source=DB; Initial Catalog=Library; Integrated Security=True"; SqlConnection conn = new SqlConnection(StrConn);
  • 27. OleDbConnection холбогч класс •MS Access баазруу физик замаар холбох string ConnString="Provider=Microsoft.Jet.OLED B.4.0; Data Source="E:FilesPayment Requestpr_db.mdb""; OleDbConnection conn=new OleDbConnection(ConnString);
  • 28. •MS Access баазруу харьцангуй замаар холбох string ConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=“ + Application.StartupPath + "....pr_db.mdb"; OleDbConnection conn=new OleDbConnection(ConnString);
  • 29. Команд классууд нь үүсгэсэн холболтоор дамжин биелэх командыг тодорхойлдог. Энэ объект нь өгөгдөлтэй ажиллахад ашиглагддаг чухал объект юм. Өөрөөр хэлбэл өгөгдлийг өгөгдлийн санруу нэмэх, засварлах, устгах гэх мэтийг үйлдлүүдэд энэ объект ашиглагдана. o SqlCommand – SqlClient нэймспейст агуулагдана. o OleDbCommand – OleDb нэймспейст агуулагдана.
  • 30. Гишүүд SqlCommand cmd = new SqlCommand(); OleDbCommand cmd = new OleDbCommand(); Connection Команд объектын ашиглах холболтыг тодорхойлно. cmd.Connection = conn; CommandType Биелүүлэх командын төрөл. CommandType төрлийн утгууд байна. •Text •StoredProcedure •TableDirect cmd.CommandType = CommandType.Text;
  • 31. Гишүүд CommandText Биелүүлэх командыг тодорхойлно. Энэ шинжийн утга CommandType төрлөөс хамааран ялгаатайгаар тодорхойлогдоно. •Text гэж тохируулсан бол SQL асуулга •StoredProcedure – процедурын нэр •TableDirect – хүснэгтийн нэр cmd.CommandText="select * from tbluser where [username]=@username and [password]=@password"
  • 32. Гишүүд Parameters Биелүүлэх командад ашиглах параметруудыг энэ шинжийн Add() ашиглан тодорхойлно. cmd.Parameters.Add("@Username", OleDbType.VarChar).Value = frmLog.txtUsername.Text; cmd.pParameters.Add("@Password", SqlDbType.NVarChar).Value = Login.txtPassword.Text; System::Data::SqlTypes санг холбох шаардлагатай
  • 33. Гишүүд ExecuteNonQuery() Командыг биелүүлж, мөрийн тоог буцаана. биелүүсэн cmd.ExecuteNonQuery(); int ct = cmd.ExecuteNonQuery(); ExecuteReader() Командыг биелүүлж, үр дүнгийн олонлогийг DataReader объектоор буцаана. SqlDataReader rdr= cmd.ExecuteReader(); OleDbDataReader rdr = cmd.ExecuteReader(); ExecuteScalar() Командыг биелүүлж, үр дүнгийн олонлогоос эхний мөрний эхний баганы утгыг буцаана.
  • 34. объект нь өгөгдлийн цуглуулгыг зөвхөн уншихаар буцаах хамгийн хурдан арга зам юм.  DataReader объект нь командын үр дүнг мөр, багана хэлбэрээр уншина.  DataReader объект нь өгөгдлийг унших үйлдлүүдийг сервэр тал дээр гүйцэтгэдэг.  DataReader
  • 35. объектын уншсан мөрний баганы өгөгдлийг авахдаа GetValue, GetString, GetInt32, GetDouble, GetdateTime методуудад баганын дугаарыг зааж уншиж болно.  DataReader  Баганын болно. нэрийг ашиглан уншиж
  • 36. while (rdr.Read()) { txtUsername.Text =rdr.GetString(1).ToString(); txtPassword.Text = rdr[“password”].ToString(); } rdr.Close();