1 / 20

ADO.NET

ADO.NET. Lecture 3 SE303-Database programming. Агуулга. ADO.NET – ийн тухай ADO.NET архитектур ADO.N ET хэрэглээ Уяатай загвар Салангид загвар. ADO.NET- ийн тухай. ADO.NET – классуудын олонлог Өгөгдлийн эх үүсвэр – өгөгдлийн сан, XML файл, текст файл

tamal
Download Presentation

ADO.NET

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ADO.NET Lecture 3 SE303-Database programming

  2. Агуулга • ADO.NET – ийн тухай • ADO.NET архитектур • ADO.NET хэрэглээ • Уяатай загвар • Салангид загвар

  3. ADO.NET-ийн тухай • ADO.NET – классуудын олонлог • Өгөгдлийн эх үүсвэр – өгөгдлийн сан, XML файл, текст файл • Өгөгдөл нийлүүлэгч – тусгай API • Нийлүүлэгч – өгөгдлийн санд зориулсан - ерөнхий (OLE DB or ODBC) Open Database Connectivity Object Linking and Embedding, Database

  4. ADO.NET-ийн архитектур Өгөгдөлд хандах хэлбэр Command Object “Select * from DB” SQL connection Data Access Layer .NET Managed Provider .NET Data Provider ODBC OLE DB ODP.NET MySQL MS SQL Server Oracle MS Access

  5. ADO.NET-ийн архитектур • OLE DB нийлүүлэгч • Захиалагч болон нийлүүлэгч - СОМ объектууд • .NET - ийн өгөгдөл нийлүүлэгч – OLE DB • Сул тал – СОМ объектуудтай харилцах шаардлагаар хяналттай ба хяналтгүй кодын хооронд сэлгээ хийгдэх учраас хурд муутай. OLE DB нийлүүлэгч Өгөгдлийн эх үүсвэр Өгөгдөл захиалагч .NET SQL Client-ээс 10 дахин бага хурдтай

  6. ADO.NET-ийн архитектур • .NET нийлүүлэгч • Завсарын гүүр холболт ашиглахгүйгээр шууд өгөгдөлд хандах • Өндөр хурдтай • Нэмэлт боломжуудыг агуулсан

  7. ADO.NET-ийн архитектур • Өгөгдөлд хандах класс • DbConnection – өгөгдлийн эх үүсвэр рүү холболт тогтооно. • DbCommand – асуулга буюу команд илгээхэд ашиглана. • DbDataReader – эх үүсвэрээс нэг чиглэлийн уншилт хийнэ. • DbDataAdapter – Dataset болон өгөгдөл нийлүүлэгчийн хооронд ажиллана. Хийсвэр классууд учраас хөгжүүлэгч тухайлсан хувилбарыг хөгжүүлэх үүрэгтэй.

  8. ADO.NET-ийн архитектур • Нийлүүлэгчийн үйлдвэр – Provider factory • DbProviderFactories->GetFactoryClassesсистемд бүртгэгдсэн өгөгдөл нийлүүлэгчдийн жагсаалтыг харна. • Нийлүүлэгчдийг ашиглахын тулд тохирох объектуудыг үүсгэх хэрэгтэй. OLE DB OleDbConnection ODBC OdbcConnection OracleClientOracleConnection SqlClientSqlConnection

  9. ADO.NET-ийн архитектур //System.Data.Common namespace хэрэгтэй. DbProviderFactory factory; string provider = “System.Data.SqlClient”; string connstr = “Data Source=MySERVER; Initial Catalog=films; UserID=filmsadmin; Password=pswd;”; //SQL Server-т зориулсан үйлдвэр объект гарган авах factory = DbProviderFactories.GetFactory(provider); //Холболтын объект үүсгэх. using нь холболтыг найдвартай хаадаг. using (DbConnectionconn = factory.CreateConnection()) { conn.ConnectionString = connstr; try { conn.Open(); DbCommandcmd = factory.CreateCommand(); //командын объект cmd.CommandText = “SELECT * FROM movies WHERE movie_ID=8”; cmd.Connection = conn; DbDataReaderdr; dr = cmd.ExecuteReader(); dr.Read(); MessageBox.Show((string)dr[“movie_Title”]); conn.Close; } catch (DbException ex) {MessageBox.Show(ex.ToString()); } catch (Exception ex) {MessageBox.Show(ex.ToString()); } finally {conn.Close();} } string provider = “System.Data.ODBC”; string connstr = “DSN=movies; Database=films”;

  10. ADO.NET-ийн хэрэглээ • ADO.NET нь өгөгдөл хандах • Уяатай – өгөгдлийг нэг чиглэлд, унших байдлаар болосвруулах бөгөөд энэ үед өгөгдлийн эх үүсвэртэй байнгын холболттой • Салангид – өгөгдлийн эх үүсвэрээс өгөгдлийг нэг удаа уншаад санах ойн хүснэгтэд боловсруулалт явагдана

  11. ADO.NET-ийн хэрэглээ • Уяатай загвар • DataReaderобъект болон өгөгдлийн эх үүсвэрийн хооронд байнгын идэвхитэй холболттой. • Онцлог шинж: Нэг чиглэлд зөвхөн уншигдах байдлаар бичлэгийг нэг нэгээр нь уншдаг. DataReader Read () command ExecuteReader() connection connection string

  12. ADO.NET-ийн хэрэглээ • Уяатай загвар • DataReader– тэй ажиллах 1. Холбогч мөрийг дамжуулж, холболтын объектыг үүсгэнэ. 2. Өгөгдлийг унших SQL командыг бэлдэнэ. 3. Командын объектыг үүсгэнэ. /холбогч мөр, SQL асуулга, транзакцын объект/ 4. Command.ExecuteReader()методыг дуудаж DataReaderобъект үүсгэнэ

  13. ADO.NET-ийн хэрэглээ Жишээ: Өгөгдлийг Listbox-д нэмэх // (1) Холболт үүсгэх DbProviderFactory factory; Sql Connection conn = new.SqlConnection(connstr); conn.Open(); // (2) Асуулга string sql = “SELECT movie_Title FROM movies ORDER BY movie=Year”; //(3) Командын объект үүсгэх SqlCommandcmd = new SqlCommand(sql, conn); DbDataReaderrdr; // (4) DataReader үүсгэх rdr = cmd.ExecuteReader(CommandBehavior.Closeconnection) while (rdr.Read()) { listBox1.Items.Add(rdr[“movie_Title”]); //ListBox-г дүүргэх } Rdr.Close(); //DataReaderобъектыг үргэлж хаах хэрэгтэй

  14. ADO.NET-ийн хэрэглээ • Салангид загвар • Зөвхөн өгөгдлийг эх үүсвэрээс унших, бичих үед л холболт хийж бусад тохиолдолд “салангид” ажиллана. • Өгөгдлийг клиент машин дээр байрлуулснаар нөөцүүдийг хэмнэж, өгөгдөл боловсруулах үүргээс чөлөөлнө. • Нөөцүүд: серверийн санах ой, холболт боловсруулалт гэх мэт • Муу тал: - өгөгдлийг эхлэн татахад хугацаа орно • - өгөгдлийг хадгалахад санах ой зарцуулна

  15. ADO.NET-ийн хэрэглээ Жишээ:DataTableүүсгэх, түүнийг өгөгдлөөр дүүргэх String sql = “SELECT movie_Title, movie_Year FROM movies”; string connstr = “Data Source=MySERVER; Initial Catalog=films; UserID=filmsadmin; Password=pswd;”; // (1) data adapter объект үүсгэх SqlDataAdapterda = new SqlDataAdapter(sql,connstr); conn.Open(); // (2) dataset үүсгэх DataSetds = ds.Tables(“movies”); //(3) dataset дотор хүснэгт үүсгэж өгөгдлөөр дүүргэх da.Fill(ds, “movies”); DataTabledt = ds.Tables(“movies”); // (4) listbox-д киноны нэрийг оруулах for (inti=0; i<dt.Rows.Count; i++) { DataRow row = dt.Rows[i]; listBox1.Items.Add(row[“movie_Title”]); }

  16. ADO.NET холбогч классууд IDbConnectionинтерфейсийн гишүүд

  17. ADO.NET холбогч мөр • Өгөгдлийн эх үүсвэр лүү хандахад шаардлагатай хэрэглэгчийн нэр, нууц үг зэрэг мэдээллийг агуулна. String Path=Server.MapPath(“/data/movies.mdb”); Data Source= … “+path+”;””DSN=movies;”

  18. ADO.NET холбогч мөр • Холбогч мөрийг параметр болгон дамжуулж өгөгдлийн сан руу холболт хийдэг. string cn = “Data Source=MySERVER; Initial Catalog=films; UserID=filmsadmin; Password=pswd;”; SqlSonnectionconn= new SqlConnection(cn); conn.Open(); //Холболтыг нээх

  19. ADO.NET холбогч мөр • Холбогч мөрийг ConnectionStringBuilderклассаар үүсгэж болно. SqlConnectionStringBuildersqlBldr = new SqlSonnectionStringBuilder(); sqlBldr.DataSource = “MYSERVER”; //эсвэл sqlBldr[“DataSource”] = “MYSERVER”; sqlBldr.Password= “pswd”; sqlBldr.UserID= “filmsadmin”; sqlBldr.InitialCatalog= “films”; SqlSonnectionconn = new SqlConnection(sqlBldr.ConnectionString); conn.Open();

  20. HomeWork • ADO.NET-ийн 2 загварын талаар дэлгэрүүлэн унших • Лабораторийн ажил: • MS SQL Server дээр 3-4 хүснэгттэй бааз үүсгэн, C#-аас холбогдох.

More Related