Danh mục tài liệu

Thao tác XML - XML và ADO.NET – Phần 1

Số trang: 15      Loại file: pdf      Dung lượng: 122.40 KB      Lượt xem: 15      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

XML là lớp kết nối giữa ADO.NET với phần còn lại của thế giới. ADO.NET được thiết kế từ sự có phát triển của việc sử dụng môi trường XML. XML được sử dụng để truyền dữ liệu trừ nơi lưu trữ vào ứng dụng hoặc trang web. Từ khi ADO.NET sử dụng XML như là môi trường truyền tải, dữ liệu có thể trao đổi giữa ứng dụng và hệ thống nó không chỉ xảy ra trong ADO.NET. Bởi sự quan trọng của XML trong ADO.NET, có một vài đặc tính mạnh mẽ trong ADO.NET cho phép đọc...
Nội dung trích xuất từ tài liệu:
Thao tác XML - XML và ADO.NET – Phần 1 Thao tác XML XML và ADO.NET – Phần 1XML là lớp kết nối giữa ADO.NET với phần còn lại của thế giới.ADO.NET được thiết kế từ sự có phát triển của việc sử dụng môi trườngXML. XML được sử dụng để truyền dữ liệu trừ nơi lưu trữ vào ứng dụnghoặc trang web. Từ khi ADO.NET sử dụng XML như là môi trường truyềntải, dữ liệu có thể trao đổi giữa ứng dụng và hệ thống nó không chỉ xảy ratrong ADO.NET. Bởi sự quan trọng của XML trong ADO.NET, có một vàiđặc tính mạnh mẽ trong ADO.NET cho phép đọc và ghi các tài liệu XML.Không gian tên System.Xml cũng chứa các lớp có thể hủy và sử dụng dữliệu quan hệ ADO.NET.Chuyển dữ liệu ADO.NET thành XMLTrong ví dụ đầu tiên chúng ta sẽ xem xét cách dùng ADO.NET, streams, vàXML để pull một vài dữ liệu từ cơ sở dữ liệu Northwind vào một DataSet,load một đối tượng XmlDocument với XML từ DataSet, và load XML vàomôt listbox. Để chạy ứng dụng chúng ta cần chèn các câu lệnh using sau:using System.Data;using System.Xml;using System.Data.SqlClient;using System.IO;Nếu sử dụng XmlDocument, chúng ta cũng cần phải thêm dòng sau:private XmlDocument doc = new XmlDocument();Các ví dụ ADO.NET thường có thêm một DataGrid trong forms. Nó chophép chúng ta thấy dữ liệu trong ADO.NET DataSet. Đây là mã cho ví dụđầu tiên, mã có thể được tìm thấy trong thư mục ADOSample1:private void button1_Click(object sender, System.EventArgs e){ //create a dataset DataSet ds = new DataSet(XMLProducts); //connect to the northwind database and //select all of the rows from products table //make sure your login matches your version of SqlServer SqlConnection conn = new SqlConnection(@server=GLYNNJ_CSNetSDK;uid=sa;pwd=;database=northwind); SqlDataAdapter da = new SqlDataAdapter(SELECT * FROMProducts,conn);Sau khi chúng ta tạo SqlDataAdapter, da, và DataSet, ds, chúng ta tạo mộtđối tượng MemoryStream, một đối tượng StreamReader, và một đối tượngStreamWriter. Các đối tượng StreamReader và StreamWriter se sử dụngMemoryStream đê di chuyển trong XML: MemoryStream memStrm=new MemoryStream(); StreamReader strmRead=new StreamReader(memStrm); StreamWriter strmWrite=new StreamWriter(memStrm);Chúng ta sẽ dùng một MemoryStream vì vậy không thể ghi bất kì cái ghi lênđĩa, tất nhiên, chúng ta có thể sử dụng bất kì đối tượng này xuất phát từ lớpStream như FileStream. Tiếp theo, chúng ta điền DataSet và kết nối nó vớiDataGrid. Dữ liệu trong DataSet bây giờ được hiển thị trong DataGrid: da.Fill(ds,products); //load data into DataGrid dataGrid1.DataSource=ds; dataGrid1.DataMember=products;Bước tiếp theo là phát ra XML. Chúng ta gọi phương thức WriteXml() từlớp DataSet. Phương thức này phát ra một tài liệu XML. Có hai quá tải củaphương thức WriteXml(): một cần một chuỗi chứa tên và đường dẫn củafile, một cái khác cần mọt tham số mode. Mode này là một kiểu liệt kêXmlWriteMode, có các giá trị sau: IgnoreSchema  WriteSchema  DiffGram IgnoreSchema được dùng nếu bạn không muốn WriteXml() ghi một inlineschema vào đầu file XML; dùng tham số WriteSchema nếu bạn muốn nhưvậy. Chúng ta sẽ xem xét DiffGrams ở phần sau. ds.WriteXml(strmWrite,XmlWriteMode.IgnoreSchema); memStrm.Seek(0,SeekOrigin.Begin); //read from the memory stream to an XmlDocument object doc.Load(strmRead); //get all of the products elements XmlNodeList nodeLst=doc.GetElementsByTagName(ProductName); //load them into the list box foreach(XmlNode nd in nodeLst) listBox1.Items.Add(nd.InnerText);}private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e){ //when you click on the listbox, //a message box appears with the unit price string srch=XMLProducts/products[ProductName= + + listBox1.SelectedItem.ToString() + + ]; XmlNode foundNode=doc.SelectSingleNode(srch); if(foundNode!=null)MessageBox.Show(foundNode.SelectSingleNode(UnitPrice).InnerText); else MessageBox.Show(Not found);}Đây là màn hình, bạn có thể nhìn thấy kết quả trong danh sách cũng nhưtrong DataGrid:Nếu bạn chỉ muốn schema, bạn có thể gọi WriteXmlSchema() thay vìWriteXml(). Phương thức này có bốn quá. Một cần một chuỗi, với đườngdẫn và tên của file XML. Quá tải thứ hai sử dụng một đối tượng xuất phát từlớp XmlWriter. Quá tải thứ ba sử dụng mọt đối tượng xuất phát từ lớpTextWriter. Quá tải thứ tư được sử dụng trong ví dụ.Ngoài ra, nếu bạn muốn có phép ghi tài liệu XML lên đĩa, bạn có thể làmnhư sau:string file = c:\test\product.xml;ds.WriteXml(file);Nó cho phép ghi tài liệu XML lên đĩa để có thể đọc bởi các luồng khách,hoặc bởi DataSet, hoặc sử dụng một ứng dụng khác, một trang web khác.Khi tham sô ...