Tải bản đầy đủ (.docx) (35 trang)

Đề tài: Quản Lý Bán Vé Máy Bay docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.06 MB, 35 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN
MÔN: CÔNG NGHỆ XML
Đề tài: Quản Lý Bán Vé Máy Bay
Gio viên hưng dn: Th.S Đỗ Thị Tâm
Nhóm sinh viên thực hiện:
1. Lưu Văn Hưởng
2. Nguyễn B Nguyện
Lp: ĐH KHMT3_K4
Thng 06, 2012
LỜI MỞ ĐẦU
Thế kỷ 21 - thế kỷ của sự bùng nổ công nghệ thông tin, các công nghệ tiên tiến
phát triển như vũ bão, mang một luồng gió mới thổi vào nhận thức của mỗi người.
Song song đó, thế giới đang trong xu thế toàn cầu hóa, tất cả đều mang ý nghĩa
hội nhập. Lúc này, các doanh nghiệp và chính phủ không chỉ cạnh tranh với các
doanh nghiệp trong một quốc gia mà còn cạnh tranh với các doanh nghiệp, chính
phủ ở khắp thế giới.
Trong bối cảnh phát triển mạnh mẽ của Internet nói chung, thương mại điện tử và
chính phủ điện tử nói riêng, việc ứng dụng công nghệ thông tin vào lĩnh vực dịch
vụ không là mới trên thế giới nhưng là mới ở Việt Nam. Nhiều vấn đề đặt ra là
làm thế nào đem đến cho khách hàng sự phục vụ tốt nhất, tiện lợi và hiệu quả
nhất. Chính vì vậy đề tài”” nhóm chúng em mong muốn sẽ xây dựng được một hệ
thống hỗ trợ các công ty và các trung tâm giao dịch giảm chi phí về nhân sự và
viễn thông, thời gian hỗ trợ ngắn hơn trong việc quản lý hệ thống bán vé máy bay,
thông tin hỗ trợ chính xác theo yêu cầu và không bỏ sót yêu cầu của khách hàng.
Do thời gian có hạn, kinh nghiệm phân tích, thiết kế, cài đặt còn hạn chế nên chắc
chắn không tránh khỏi một số sai sót nhất định. Rất mong nhận được sự đóng góp
ý kiến quý Cô và bạn bè để chúng em hoàn thiện đề tài này.


Chúng em xin chân thành cảm ơn!
Bài toán quản lý bán vé máy bay
Một hãng hàng không cần quản lý toàn diện việc bán vé máy bay bằng máy vi tính. Sau
khi khảo sát hiện trang, phân tích viên nắm được những thông tin sau:
Mỗi khi khách hàng mua vé máy bay lần đầu tiên tùy theo quốc tịch của khách hành mà
phòng bán vé lưu lại những thông tin sau đây:
Nếu khách hàng là người Việt Nam thì lưu: Họ, tên, số chứng minh nhân dân hoặc số
khai sinh, giới tính, ngày sinh, nghề nghiệp, địa chỉ nhà riêng, số điện thoại. Nếu khách
hàng là người nước ngoài thì lưu: Họ, tên, quốc tịch, số hộ chiếu, lý do vào Việt Nam.
Nếu khách hàng là cán bộ của cơ quan doanh nghiệp thì quản lý thêm: Cơ quan công
tác, địa chỉ, điện thoại, số fax cơ quan, chức vụ tại cơ quan, số tài khoản ngân hàng của
cơ quan.
Địa chỉ nhà riêng của khách hàng hay của cơ quan được phân biệt làm hai loại: Nếu địa
chỉ thành thị thì quản lý: Số nhà, đường, huyện, tỉnh; Nếu địa chỉ nông thôn thì quản lý:
Xã, huyện, tỉnh.
Tại phòng bán vé, hãng có sẵn một lịch bay trên toàn thế giới trong một năm bao gồm
các thông tin: Sân bay đi, sân bay đến(sân bay thuộc thành phố nào, quốc gia nào), loại
máy bay, khoảng cách giữa hai sân bay, ngày bay, giờ bay, thời gian bay.
Vé máy bay của hãng gồm ba loại: Loại 1, loại 2, loại 3. Mỗi loại vé có giá khác nhau
cho từng loại máy bay. Giá vé có hai loại cho người Việt Nam và người nước ngoài. Có
loại máy bay không có vé loại 1 và 2.
Quy trình bán vé của hãng như sau:
Khách hàng cần mua vé có thể đến trực tiếp phòng vé hay đặt hàng qua mạng hoặc qua
điện thoại. Khi khách hàng được cung cấp đầy đủ thông tin về lịch bay sẽ lựa chọn
chuyến bay mà mình muốn đi. Nếu chuyến bay đó còn chỗ thì khách hàng có thể chọn
loại vé và mua ngay hoặc đặt trước chỗ. Khi chuyến bay đã hết chỗ khách hàng có thể
đăng ký chờ để mua vé chuyến này nếu có khách hàng nào đó đã mua vé hoặc đặt chỗ
nhưng cuối cùng đã trả vé hay hủy chỗ.
Khách hàng đã đặt chỗ phải đến mua vé chậm nhất 48 giờ trước khi chuyến bay cất
cánh. Nếu trong thời gian ấy mà khách hàng không mua vé thì coi như đã hủy việc đặt

vé và phòng vé sẽ xóa tên trong danh sách đặt vé nếu cần.
Khách hàng đã mua vé cho một chuyến bay nào đó nhưng vì một lý do nào đó mà
không đi được thì có thể xác định lại chuyến bay ở bất kỳ chuyến bay cùng tuyến nào
đó. Trong trường hợp khách hàng không thể đi được thì có thể trả lại vé đã mua bất kỳ
lúc nào trong vòng một năm kể từ ngày mua.
Mỗi ngày bộ phận bán vé và đặt chỗ sẽ duyệt lại tình hình bán vé cho các chuyến bay
trong hai ngày tới. Nếu có trường hợp hủy vé đã đặt hoặc trả lại vé thì phải thông báo
cho khách hàng đăng ký chờ đến mua vé. Nếu những vé cờ không thể đáp ứng được thì
thông báo cho khách hàng để họ có thể lựa chọn chuyến sau.
Cuối mỗi ngày bộ phận kế toán in bảng tổng hợp tình hình bán vé trong ngày theo mẫu
đã định.
I. TỔNG QUAN VỀ XML
1. Giới thiệu.
XML (Extensible Markup Language) ra đời vào tháng 2/1998, là ngôn ngữ có kiến
trúc gần giống với HTML nhưng XML nhanh chóng trở thành một chuẩn phổ biến
trong việc chuyển đổi thông tin qua các trang web sử dụng giao thức HTTP. Trong
khi HTML chỉ là ngôn ngữ chủ yếu về hiển thị dữ liệu thì XML lại đang phát triển
mạnh về việc chuyển tải, trao đổi và thao tác dữ liệu bằng XML. XML đưa ra một
dạng chuẩn cho cấu trúc dữ liệu hoặc thông tin bằng việc tự định nghĩa định dạng của
dữ liệu. Bằng cách này dữ liệu được lưu trữ bằng XML sẽ độc lập với việc xử lý. Vì
vậy XML ra đời sẽ đáp ứng được yêu cầu ngày càng cao của các nhà lập trình trong
vấn đề trao đổi và xử lý thông tin.
2. Mục tiêu ra đời của XML.
Ngày nay, XML đang trở thành một chuẩn chung cho việc trao đổi dữ liệu cho các
ứng dụng chạy trên môi trường Internet. Vì XML cho phép người dùng có thể tự định
nghĩa các thẻ(tag)-những thẻ này làm cho tài liệu XML đa dạng hơn nhưng ngôn ngữ
thông thường như HTML. Như vậy mục tiêu đặt ra cho sự ra đời XML là gì? Đó là,
đầu tiên nó sẽ tương thích với SGML, và dễ dàng viết thành chương trình để sử lý
cho những tài liệu XML. Kế tiếp, những tài liệu XML rõ ràng, dễ đọc và dễ dàng tạo
lập. Và điều quan trọng là nó được hỗ trợ trong nhiều ứng dụng. Nói tóm lại, XML dễ

dàng chia sẻ thông tin qua những định dạng khác nhau thông qua môi trường web.
XML được thiết kế dành cho mọi người, được mọi người sử dụng.
3. Lợi ích khi sử dụng XML
Trong quá trình trưởng thành và phát triển, XML đã đối mặt và đương đầu với nhiều
thư thách trong việc thuyết phục các nhà lập trình rằng XML thực sự là lựa chọn hàng
đầu vì nó dễ dàng để hiểu, dễ dàng để đọc, và dễ dàng thực hiện. Sau đây là một số
lợi ich khi sử dụng XML.
• XML có thể tách rời dữ liệu. Sử dụng XML, dữ liệu được chứa trong các tập tin
XML riêng biệt.
• XML có thể mô tả thông tin của những đối tượng phức tạp mà cơ sở dữ liệu quan
hệ không thể giải quyết được.
• XML có thể dùng chuyển đổi dữ liệu giữa các hệ thống không tương thích.
• XML dùng để chia sẻ dữ liệu với những tập tin văn bản đơn giản dễ hiểu.
• XML cũng được dùng để lưu trữ dữ liệu, có thể làm cho dữ liệu của chúng ta hữu
ích hơn.
II. Tìm hiểu về thành phần của XML
1. Tạo lập một tài liệu XML.
Chúng ta có thể sử dụng trình soạn thảo đơn giản nhất là Notepad để soạn thảo tài
liệu XML, nhưng phải tuân thủ theo quy tắc sau:
Theo định dạng trên, chúng ta thấy tuy tài liệu XML rất đơn giản nhưng qui định cũng
rất nghiêm ngặt, có nghĩa là các tài liệu XML đều xuất phát từ nút gốc(root), và mỗi
phần tử phải có thể đóng và thẻ mở <… />
2. Những thành phần của một tài liệu XML.
 Khai báo: Mỗi một tài liệu XMl có một chỉ thị khai báo:
Định nghĩa tài liệu XML tuân theo chuẩn của W3C và đây là phiên bản “1.0”;
 Chú thích: được khao báo như sau:
 Phần tử(Elements): Một tài liệu XML được cấu thành từ những phần tử. Một phần tử
có thẻ mở và thẻ đóng. Giữa thẻ mở và thẻ đóng là nội dung của phần tử đó. Phần tử
có thể chứa dữ liệu hoặc có thể lồng vào mộ phần tử khác.
 Phần tử gốc(root): Trong tài liệu XML chỉ có một phần tử gốc, và phần tử gốc này sẽ

chứa tất cả những phần tử của tài liệu XML do chúng tạo ra.
<root>
<child>
<subchild>….</subchild>
……………
< /child >
…….
</root>
<? xml version = ”1.0” ?
>
< ! chú thích >
 Thuộc tính(Attributes): Như đã trình bày ở trên, một phần tử có thể chứa dữ liệu hoặc
chứa các phần tử khác hoặc cả hai. Bên cạnh đó, phần tử có thể rỗng, khi đó nó có thể
chứa thuộc tính. Một thuộc tính chỉ là một sự lựa chọn để gắn dữ liệu đến phần tử.
Một thuộc tính đặt trong thẻ mở của phần tử và chỉ ra các giá trị của nó bằng các sử
dụng cặp “name=value”.
3. Một tài liệu hợp lệ.
Như chúng ta đã đề cập ở trên, một tài liệu XML hợp khuôn dạng là yếu tố đầu
tiên khi tạo lập tài liệu. Hợp khuôn dạng có nghĩa là mỗi tài liệu chỉ có một nút
gốc, mỗi phần tử phải có thẻ mở và thẻ đóng, và phải lồng nhau chính xác, và cuối
cùng là tên thuộc tính chỉ xuất hiện một lần trong thẻ mở. Nhưng một tài liệu
XML hợp khuôn dạng không có nghĩa là nó hợp lệ. Muốn kiểm tra sự hợp lệ
của một tài liệu XML ta phải dựa vào DTD (Document Type Definition) hoặc
Schema XML.
4. DTD (Document Type Definition)
DTD và Schema là hai cách khác nhau để qui định những luật về nội dung của
<?xml version="1.0"?>
<Catalog>
<Product Type="SpinningReel"SupplierId="5">
<ProductID>F10</ProductID>

<ProductName>Shimano Calcutta </ProductName>
<ListPrice>47.76</ListPrice>
</Product>
<Product Type ="Baitcasting Reel" SupplierId="3">
<ProductID>F20</ProductID>
<ProductName>Bantam Lexica</ProductName>
<ListPrice>49.99</ListPrice>
</Product>
</Catalog>
một tài liệu XML. Tuy nhiên DTD có một vài hạn chế. Đầu tiên, tài liệu DTD
không sử dụng định dạng XML, nghĩa là bản thân DTD không phải là một tài
liệu XML. Điều thứ hai là kiểu dữ liệu có sẵn dùng để định nghĩa nội dung của
một thuộc
tính

hoặ
c một phần tử thì rất giới hạn trong DTD. Điều thứ ba là
DTD không có khả năng mở rộng và
không

hỗ
trợ namespace. Cuối cùng là do
không viết theo định dạng XML nên DTD khó viết và khó hiểu. Vì vậy, việc sử
dụng DTD để kiểm tra sự hợp lệ của một tài liệu XML là không khả thi. Chúng
ta cần có một
sự
l

a chọn khác khả thi hơn để kiếm tra sự hợp lệ của tài liệu
XML. Đó là chúng ta sử dụng lược đồ XML - Schema XML Definition (XSD).

5. Lược đồ XML (Schema XML)
5.1 Định nghĩa lược đồ XML
Một lược đồ đơn giản chỉ là một tập những luật được định nghĩa lại để mô tả
nội dung dữ liệu c

a
mộ
t tài liệu XML. Nó tương tự như một định nghĩa cấu trúc
bảng trong cơ sở dữ liệu quan hệ. Trong lược đồ XML, chúng ta định nghĩa một tài
liệu XML, những phần tử của nó, những kiểu dữ liệu của phần tử và những thuộc
tính liên quan, và điều quan trọng nhất là mối quan hệ “cha-con” giữa những
phần t
ử.

Chúng
ta có thể tạo lược đồ trong nhiều cách khác nhau. Cách đơn giản
nhất là sử dụng Notepad. Sau đây là một ví dụ một
lược đồ XML:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="QLbanvemaybay"
targetNamespace=" /> elementFormDefault="qualified"
xmlns=" /> xmlns:mstns=" /> xmlns:xs=" /> <! Kieu ma >
<xs:simpleType name="kieuma">
<xs:restriction base="xs:ID">
<xs:maxLength value="5"/>
</xs:restriction>
</xs:simpleType>
<! Kiểu xâu >
<xs:simpleType name="kieuxau">
<xs:restriction base="xs:string">

<xs:maxLength value="200"/>
</xs:restriction>
</xs:simpleType>
<! Dinh nghia bang SAN BAY >
<xs:complexType name="kieu_sanbay">
<xs:sequence>
<xs:element name="ten_sanbay" type="kieuxau"/>
<xs:element name="so_duong_bang" type="kieuxau"/>
<xs:element name="loai_duongbang" type="kieuxau"/>
<xs:element name="chieudaiduongbang" type="kieuxau"/>
5.2 Các kiểu dữ liệu trong lược đồ XML
Khi tập tin XML hoạt động như một cơ sở dữ liệu, và XSL, XPath được sử dụng
để truy vấn trên tập tin XML giống như một số ngôn ngữ truy vấn trong SQL, thì lúc
này chúng ta cần biết được vị trí của từng phần tử trong tập tin XML được khai báo ở
đâu và với kiểu dữ liệu như thế nào. Vì trong bất kỳ cơ sở
dữ
li
ệu
quan hệ nào, ví dụ
như SQL Server hoặc Oracle, tất cả những cột đều được định nghĩa kiểu dữ li
ệu,



vậy thật sự cần thiết phải có kiểu dữ liệu trong lược đồ XML.
Có hai loại kiểu dữ liệu trong lược đồ XML đó là kiểu dữ liệu cơ bản và kiểu
dữ liệu mở rộng. Kiểu dữ liệu cơ bản là kiểu dữ liệu không bắt nguồn từ kiểu dữ
liệu nào ví dụ như kiểu dữ liệu float. Kiểu dữ liệu mở rộng dựa trên những kiểu
dữ liệu khác ví dụ như kiểu integer dựa trên kiểu decimal.
Kiểu dữ liệu cơ bản được định nghĩa cho mục đích của lược đồ XML thì

không nhất thiết
phả
i
giống
với một số cơ sở dữ liệu khác. Sau đây là danh
sách các kiểu dữ liệu của lược đồ XML.
String normalizedString length
Boolean Token minLength
Decimal Language maxLength
Float NMTOKEN pattern
Các kiểu dữ liệu cơ bản
Kiểu dữ liệu mở rộng
Kiểu ràng buộc
Double NMTOKENS enumeration
dateTime NCName maxInclusive
Time ID maxExclusive
Date IDREF minExclusive
base64Binary negativeInteger
gYearMonth IDREFS minInclusive
gMonthDay ENTITY totalDigits
GMonth Integer
GDay ENTITIES fractionDigits
long
int
short
byte
6. Xpath
Qua phần trình bày trên, chúng ta biết được cấu trúc và cú pháp của XML tương
đối đơn giản. Bước tiếp theo là tìm hiểu cách nào để xử lý một tài liệu XML.
Như vậy để xử lý một tài liệu XML, chương trình ứng dụng phải có cách di

chuyển bên trong tài li
ệu
để lấy ra giá trị của các phần tử (Elements) hay thuộc
tính (Attributes). Do đó ngôn ngữ XML Path được ra đời, mà chúng ta gọi tắt là
XPath. XPath đóng một vai trò quan trọng trong việc truy vấn dữ liệu cho các
chương trình ứng dụng vì nó cho phép ta lựa chọn hay sàng lọc ra những phần tử
nào mình muốn để trao đổi hay hiển thị.
Nếu khi làm việc với cơ sở dữ liệu ta dùng các phát biểu SQL như
SELECT FROM table_name WHERE để trích ra một số mẩu tin từ một bảng,
thì khi làm việc với tập tin
XML,

XPath
cho ta những biểu thức (expressions)
về điều kiện (criteria) giống như mệnh đề WHERE trong SQL.
XPath là một ngôn ngữ dùng để xử lý truy vấn trên tài liệu XML, cũng giống
như SQL là một chuẩn để làm việc với cơ sở dữ liệu. Một biểu thức XPath có
thể chỉ ra vị trí và mẫu nào để kết hợp. Chúng ta có thể áp dụng toán tử boolean,
hàm string, và toán tử số học trong biếu thức XPath để xây dựng câu truy vấn phức
tạp trên tài liệu XML. XPath c
ũng

cung
cấp một số hàm về số như tính tổng, hàm
làm tròn (round), v.v….
7. Nhận xét về XML
XML được xây dựng như là một chuẩn cho việc trình bày và trao đổi dữ
liệu trên web. Tập đoàn W3C
3
đã xây dựng chuẩn XML và những công nghệ liên

quan bao gồm XML DOM, XPath, XSL, và XML Schema. Trong đó XML DOM
được sử dụng để tạo, thay đổi, và duyệt qua tài liệu XML. XPath là ngôn ngữ dùng
để truy vấn trên tài liệu XML. XSL dùng để chuyển đổi tài liệu XML từ dạng này
sang

dạng
khác. XML Schema định nghĩa cấu trúc và kiểu dữ liệu cho những nút
trong một tài liệu XML.
Tấ
t c

những công nghệ này đã tạo nên sức mạnh cho
XML. Vì thế, XML ngày nay đang được sử dụng
rấ
t
phổ
biến và tương lai sẽ là một
chuẩn duy nhất được dùng trên web.
III. Sử dụng tài liệu XML.
Dưới đấy là một số kỹ thuật được sử dụng trong môi trường Visual Studio.NET
để làm việc với tập tin XML.
1. Đọc và phân tích tài liệu XML
1.1 Đọc và ghi một file XML
//Địa chỉ file
public string file = "";
private static string strFilename = "E:\\QLbanveMB.xml";

void tenfile()
{
if (file != "")

strFilename = file;
}
//Đọc file XML
public XmlDocument DocTaiLieu()
{
tenfile();
XmlDocument xmldoc = new XmlDocument();
try
{
xmldoc.Load(strFilename);
}
catch
{
return null;
}
return xmldoc;
}
//Ghi file XML
public void GhiTaiLieu(XmlDocument document)
{
tenfile();
try
{
document.Save(strFilename);
}
catch
{
}
}
1.2. Tạo kết nối và truy vấn lên cơ sở dữ liệu:

//Tạo kết nối đến CSDL
public SqlConnection taoketnoi()
{
return new SqlConnection("Data Source=.;Initial
Catalog=BanVeMayBay;Integrated Security=True");
}
//Trả về bảng dữ liệu
public DataTable getTable(string sql)
{
SqlConnection sqlcon = taoketnoi();
sqlcon.Open();
SqlDataAdapter ada = new SqlDataAdapter(sql,
sqlcon);
sqlcon.Close();
DataSet ds1 = new DataSet();
ada.Fill(ds1);
return ds1.Tables[0];
}
//Truy vấn đến CSDL
public void truyvan(string sql)
{
SqlConnection con = taoketnoi();
SqlCommand cmd = new SqlCommand(sql, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
cmd.Dispose();
}
1.3Xử lý dữ liệu trên file XML(bảng MAYBAY)
//Tự động tăng mã

public string tangma()
{
return
fct.tangmatudong(".//maybay[@*]/@ma_maybay", "MB");
}
//Thêm 1 node mới vào tài liệu sử dụng hàm InsertAfter
public void luumaybay(string ma, string ten)
{
XmlDocument doc = dgxml.DocTaiLieu();
XmlNode goc = doc.DocumentElement;
XmlElement nutthem =
doc.CreateElement("maybay");
XmlAttribute thuoctinh =
doc.CreateAttribute("ma_maybay");
thuoctinh.InnerText = ma;
nutthem.SetAttributeNode(thuoctinh);
XmlNode ten_maybay =
doc.CreateElement("ten_maybay");
ten_maybay.InnerText = ten;
nutthem.AppendChild(ten_maybay);
XmlNode vitri =
goc.SelectSingleNode(".//maybay[last()]");
goc.InsertAfter(nutthem, vitri);
dgxml.GhiTaiLieu(doc);
//hienmaybay();
}
//Sửa thông tin máy bay và thay thế cho node cũ dùng hàm
ReplaceChild
public void suamaybay(string mamaybay,string tenmaybay)
{

XmlDocument doc = dgxml.DocTaiLieu();
XmlNode goc = doc.DocumentElement;
XmlNode cu =
doc.SelectSingleNode("//maybay[@ma_maybay='" + mamaybay +
"']");

XmlElement nutthem =
doc.CreateElement("maybay");
XmlAttribute thuoctinh =
doc.CreateAttribute("ma_maybay");
thuoctinh.InnerText = mamaybay;
nutthem.SetAttributeNode(thuoctinh);
XmlNode ten_maybay =
doc.CreateElement("ten_maybay");
ten_maybay.InnerText = tenmaybay;
nutthem.AppendChild(ten_maybay);

goc.ReplaceChild(nutthem, cu);
dgxml.GhiTaiLieu(doc);
//hienmaybay();
}
//Xóa một node trong tài liệu sử dụng hàm RemoveChild
public void xoamaybay(string mamaybay)
{
XmlDocument doc = dgxml.DocTaiLieu();
XmlNode goc = doc.DocumentElement;
XmlNode cu =
doc.SelectSingleNode(".//maybay[@ma_maybay='" + mamaybay +
"']"); ;
goc.RemoveChild(cu);

dgxml.GhiTaiLieu(doc);}
//Lưu những thay đổi trên tài liệu XMl vào CSDL
public int i = 0;
public int j = 0;
public void luu_CSDL()
{
XmlDocument doc = dgxml.DocTaiLieu();
XmlNode goc = doc.DocumentElement;
XmlNodeList mb = doc.SelectNodes(@"//maybay");
foreach (XmlNode node in mb)
{
XmlNode mamb =
node.SelectSingleNode("@ma_maybay");
XmlNode tenmb =
node.SelectSingleNode("ten_maybay");
string them = "insert into MAYBAY
values(N'" + tenmb.InnerText + "','" + mamb.InnerText +
"')";
string sua = "update MAYBAY set
ten_maybay=N'" + tenmb.InnerText + "'where ma_maybay='" +
mamb.InnerText + "'";
try
{
acsql.truyvan(them);
i++;
}
catch
{
acsql.truyvan(sua);
j++;

}
}
}
//Lưu bảng MAYBAY ra file Xml nếu thỏa mãn điều kiện
public void luurafileXML()
{
DataTable table = dsma_MayBay();
//int i = 0, sodong = table.Rows.Count-1;
string mamb = "", tenmb = "";
//while (i != sodong)
//{
for (int i = 0; i < table.Rows.Count; i++)
{
mamb = table.Rows[i][1].ToString(); tenmb =
table.Rows[i][0].ToString();
if
(fct.kiemtrama(".//maybay[@*]/@ma_maybay", mamb) == false)
{
luumaybay(mamb, tenmb);
}
else suamaybay(mamb, tenmb);
}

2. File XML đầy đủ
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl"
href="banvemaybayXSLT.xslt"?>
<QLbanvemaybay>
<! Bảng 0_Danh sách Phân quyền >
<phanquyen ma_nhom="PQ001">

<tennhom>Admin</tennhom>
</phanquyen>
<phanquyen ma_nhom="PQ002">
<tennhom>Quản trị viên</tennhom>
</phanquyen>
<phanquyen ma_nhom="PQ003">
<tennhom>Nhân viên</tennhom>
</phanquyen>
<! Bảng 1_Danh sách Sân Bay >
<sanbay masanbay="SB001">
<ten_sanbay>Sân bay Nội Bài</ten_sanbay>
<so_duong_bang>2</so_duong_bang>
<loai_duongbang>bê tông</loai_duongbang>
<chieudaiduongbang>3200m/3800m</chieudaiduongbang>
<bay_dem>Có</bay_dem>
<thanhpho>Hà Nội</thanhpho>
<quocgia>Việt Nam</quocgia>
</sanbay>
<sanbay masanbay="SB002">
<ten_sanbay>Sân bay Côn Đảo</ten_sanbay>
<so_duong_bang>1</so_duong_bang>
<loai_duongbang>nhựa đường</loai_duongbang>
<chieudaiduongbang>1830m</chieudaiduongbang>
<bay_dem>Không</bay_dem>
<thanhpho>Bà Rịa-Vũng Tàu</thanhpho>
<quocgia>Việt Nam</quocgia>
</sanbay>
<sanbay masanbay="SB003">
<ten_sanbay>Sân bay quốc tế Đà Nẵng</ten_sanbay>
<so_duong_bang>2</so_duong_bang>

<loai_duongbang>bê tông</loai_duongbang>
<chieudaiduongbang>3000m/3000m</chieudaiduongbang>
<bay_dem>Có</bay_dem>
<thanhpho>Đà Nẵng</thanhpho>
<quocgia>Việt Nam</quocgia>
</sanbay>
<sanbay masanbay="SB004">
<ten_sanbay>Sân bay Cà Mau</ten_sanbay>
<so_duong_bang>1</so_duong_bang>
<loai_duongbang>nhựa đường</loai_duongbang>
<chieudaiduongbang>1500m</chieudaiduongbang>
<bay_dem>Không</bay_dem>
<thanhpho>Hà Nội</thanhpho>
<quocgia>Việt Nam</quocgia>
</sanbay>
<! Bảng 2_Danh sách máy bay >
<maybay ma_maybay ="MB001">
<ten_maybay>Boeing 777</ten_maybay>
</maybay>
<maybay ma_maybay ="MB002">
<ten_maybay>Boeing 737</ten_maybay>
</maybay>
<maybay ma_maybay ="MB003">
<ten_maybay>Boeing 787</ten_maybay>
</maybay>
<maybay ma_maybay ="MB004">
<ten_maybay>Airbus</ten_maybay>
</maybay>
<! Bảng 3_Danh sách nhân viên >
<nhanvien ma_nhanvien="NV001" ma_nhom="PQ003">

<hodem_nhanvien>Nguyễn Hoàng</hodem_nhanvien>
<ten_nhanvien>Lưu</ten_nhanvien>
<gioitinh>Nam</gioitinh>
<ngaysinh>1987-10-10</ngaysinh>
<trinhdohocvan>Cao Đẳng</trinhdohocvan>
<quequan>Hà Nội</quequan>
<dienthoai>0987687498</dienthoai>
<pass>123456</pass>
</nhanvien>
<nhanvien ma_nhanvien="NV002" ma_nhom="PQ003">
<hodem_nhanvien>Trần Minh</hodem_nhanvien>
<ten_nhanvien>Đức</ten_nhanvien>
<gioitinh>Nam</gioitinh>
<ngaysinh>1987-11-16</ngaysinh>
<trinhdohocvan>Cao Đẳng</trinhdohocvan>
<quequan>Hải Dương</quequan>
<dienthoai>0978687359</dienthoai>
<pass>123456</pass>
</nhanvien>
<nhanvien ma_nhanvien="NV003" ma_nhom="PQ003">
<hodem_nhanvien>Trần Đình</hodem_nhanvien>
<ten_nhanvien>Hiếu</ten_nhanvien>
<gioitinh>Nam</gioitinh>
<ngaysinh>1986-10-20</ngaysinh>
<trinhdohocvan>Đại Học</trinhdohocvan>
<quequan>Hưng Yên</quequan>
<dienthoai>01668248679</dienthoai>
<pass>123456</pass>
</nhanvien>


<! Bảng 4_Danh sách khách hàng >
<khachhang ma_khachhang="KH001">
<HoDem>Nguyễn Văn</HoDem>
<ten>Lượng</ten>
<gioitinh>Nam</gioitinh>
<CMND_hochieu>125698987</CMND_hochieu>
<ngaysinh>2012-02-05</ngaysinh>
<diachi>Bắc Ninh</diachi>
<email></email>
<dienthoai>0986589745</dienthoai>
<quoctich>Việt Nam</quoctich>
</khachhang>
<! Bảng 5_Danh sách loại vé >
<loaive ma_loaive="LV001">
<tenloaive>Vé loại 1</tenloaive>
<dongia>3000000</dongia>
</loaive>
<loaive ma_loaive="LV002">
<tenloaive>Vé loại 2</tenloaive>
<dongia>2500000</dongia>
</loaive>
<loaive ma_loaive="LV003">
<tenloaive>Vé loại 3</tenloaive>
<dongia>2300000</dongia>
</loaive>
<loaive ma_loaive="LV004">
<tenloaive>Vé giảm giá</tenloaive>
<dongia>2000000</dongia>
</loaive>
<! Bảng 6_Danh sách các tuyến bay >

<tuyenbay ma_tuyenbay="TB001" masanbay_di="SB001"
masanbay_den ="SB003">
<ten_tuyenbay>Nội Bài đi Đà Nẵng</ten_tuyenbay>
</tuyenbay>
<tuyenbay ma_tuyenbay="TB002" masanbay_di="SB001"
masanbay_den ="SB002">
<ten_tuyenbay>Nội Bài đi Côn Đảo</ten_tuyenbay>
</tuyenbay>
<tuyenbay ma_tuyenbay="TB003" masanbay_di="SB002"
masanbay_den ="SB004">
<ten_tuyenbay>Côn Đảo đi Cà Mau</ten_tuyenbay>
</tuyenbay>
<tuyenbay ma_tuyenbay="TB004" masanbay_di="SB001"
masanbay_den ="SB006">
<ten_tuyenbay>Hà Nội đi Khánh Hòa</ten_tuyenbay>
</tuyenbay>
<tuyenbay ma_tuyenbay="TB005" masanbay_di="SB001"
masanbay_den ="SB005">
<ten_tuyenbay>Hà Nội đi Hồ Chí Minh</ten_tuyenbay>
</tuyenbay>
<tuyenbay ma_tuyenbay="TB006" masanbay_di="SB004"
masanbay_den ="SB002">
<ten_tuyenbay>Cà Mau đi Côn Đảo</ten_tuyenbay>
</tuyenbay>
<! Bảng 7_Danh sách chuyến bay >
<chuyenbay ma_chuyenbay="CB001" ma_tuyenbay ="TB001"
ma_maybay="MB001">
<ten_chuyenbay>Nội Bài đi Đà Nẵng</ten_chuyenbay>
<ngaybay>2012-05-19</ngaybay>
<giokhoihanh>09:00:00</giokhoihanh>

<thoigianbay>2 giờ</thoigianbay>
<tinhtrang>Chưa bay</tinhtrang>
</chuyenbay>
<! Bảng 8_Danh sách Vé >
<ve ma_ve="VE001" ma_chuyenbay="CB001" ma_loaive
="LV001">
<tinhtrang>Đã được đặt</tinhtrang>
</ve>
<! Bảng 9_Danh sách đặt vé >
<datve ma_datve="DV001" ma_khachhang="KH001"
ma_ve="VE001">
<ngaydat>2012-05-10</ngaydat>
<soghedat>1</soghedat>
</datve>
<! Bảng 10_Danh sách hóa đơn >
<hoadon ma_hoadon="HD001" ma_datve="DV001"
ma_nhanvien="NV001">
<ngaylap>2012-05-13</ngaylap>
</hoadon>
</QLbanvemaybay>
3. File xslt cho thông tin lên trình duyệt.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl=" />xmlns:msxsl="urn:schemas-microsoft-com:xslt"
>
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<head>
<style type="text/css">

table{
border-spacing: 0px;
border-collapse: collapse;
}
th {
text-align: center;
font-weight: bold;
padding: 2px;
border: 2px solid #FFFFFF;
background: #46CB33;
}
td {
text-align: center;
padding: 2px;
border: 2px solid #C8DBDE;
background: #e3f0f7;
}
td {
background: #f7f7f7;
}
body {
overflow-y:scroll;
}
h2{
color: #EA151E;
}
</style>

<script type="text/javascript" src="jquery-
1.4.2.min.js"></script>

<script language = "JavaScript">
$(document).ready(function(){
$(".tabContents").hide(); // Ẩn toàn bộ nội dung
của tab
$(".tabContents:first").show(); // Mặc định sẽ
hiển thị tab1
$("#tabContaier ul li a").click(function(){
//Khai báo sự kiện khi click vào một tab nào đó
var activeTab = $(this).attr("href");
$("#tabContaier ul li a").removeClass("active");
$(this).addClass("active");
$(".tabContents").hide();
$(activeTab).fadeIn();
});
});
</script>
</head>
<body>

<div id="deadline">
<h1> Quản lý bán vé máy bay</h1>
</div>
<div id="tabContaier">
<ul>
<li>
<a class="active" href="#tab1">Sân bay</a>
</li>
<li>
<a href="#tab2">Máy bay</a>
</li>

<li>
<a href="#tab3">Tuyến bay</a>
</li>
<li>
<a href="#tab4">Chuyến bay</a>
</li>
<li>
<a href="#tab5">Loại vé</a>
</li>
<li>
<a href="#tab6">Vé</a>
</li>
<li>
<a href="#tab7">Phân quyền</a>
</li>
<li>
<a href="#tab8">Đặt vé</a>
</li>
<li>
<a href="#tab9">Hóa đơn</a>
</li>
<li>
<a href="#tab10">Khách hàng</a>
</li>
<li>
<a href="#tab11">Nhân viên</a>
</li>
</ul>
<center>
<div class="tabDetails">

<div id="tab1" class="tabContents">
<h2> Thông tin về sân bay</h2>
<table>
<tr>
<th align="center" >STT</th>
<th align="center">Mã sân bay</th>
<th align="center">Tên sân bay</th>
<th align="center">Số đường băng</th>
<th align="center">Loại đường băng</th>
<th align="center">Chiều dài</th>
<th align="center">Bay đêm</th>
<th align="center">Thành phố</th>
<th align="center">Quốc gia</th>
</tr>
<xsl:apply-templates
select="QLbanvemaybay/sanbay"/>
</table>
</div>
<div id="tab2" class="tabContents">
<h2> Thông tin về Máy bay</h2>
<table>
<tr>
<th align="center">STT</th>
<th align="center">Mã máy bay</th>
<th align="center">Tên máy bay</th>
</tr>
<xsl:apply-templates
select="QLbanvemaybay/maybay"/>
</table>
</div>

<div id="tab3" class="tabContents">
<h2> Thông tin về tuyến bay</h2>
<table>
<tr>
<th align="center">STT</th>
<th align="center">Mã tuyến bay</th>
<th align="center">Tên tuyến bay</th>
<th align="center">Mã sân bay đi</th>
<th align="center">Mã sân bay đến</th>
</tr>
<xsl:apply-templates
select="QLbanvemaybay/tuyenbay"/>
</table>
</div>
<div id="tab4" class="tabContents">
<h2> Thông tin về chuyến bay</h2>
<table>
<tr>
<th align="center">STT</th>
<th align="center">Mã chuyến bay</th>

×