Tập tin lớp
Các dịch vụ Web
Sử dụng trình duyệt dể duyệt dịch vụ Web XML chúng ta sẽ được kết quả như sau:
Nhấn chuột vào phương thức chỉ định chúng ta sẽ nhận được màn hình tương tự sau:.
Liệt kê các phương thức của dịch vụ Web trên như sau: public GolfCourse[] FindAll()
public GolfCourse[] FindGeneric(String[] fields, String[] values) public GolfCourse GetCourseDetail(String id)
public GolfCourse AddCourse(String name, String description, String price, String streetAddress, String city, String state, String postalCode, String country, String telephone)
public GolfCourse AddTee(int courseId, String description, float slope)
public GolfCourse AddHole(int teeId, int handicap, int length, int hole, int par)
public TeeTime AddTeeTime(int courseId, int golfer, DateTime date, DateTime time) public TeeTime[] FindTeeTimesByGolfer(int golferId)
public Golfer AddGolfer(String firstName, String lastName, String streetAddress, String city, String state, String postalCode, String country, String email, String phone, String username, String password)
public Golfer FindGolferById(int golferId)
public Golfer ValidateLogin(String username, String password) public TeeTime[] FindTeeTimesByDate(int courseId, DateTime date)
public TeeTime[] FindTeeTimesByDateRange(int courseId, DateTime startDate, DateTime endDate)
Bảng Course
Bảng này sẽ chứa tất cả thông tin liên quan khóa học trong ứng dụng máy chủ. Các trường được liệt kê trong bảng sau:
Diễn giải | |
Id | Chứa ID của khóa học. Tự động tăng. |
Name | Chứa tên của khóa học |
Có thể bạn quan tâm!
- Lập trình web nâng cao XML - Trường CĐN Đà Lạt - 20
- Lập trình web nâng cao XML - Trường CĐN Đà Lạt - 21
- Lập trình web nâng cao XML - Trường CĐN Đà Lạt - 22
- Lập trình web nâng cao XML - Trường CĐN Đà Lạt - 24
- Lập trình web nâng cao XML - Trường CĐN Đà Lạt - 25
- Lập trình web nâng cao XML - Trường CĐN Đà Lạt - 26
Xem toàn bộ 258 trang tài liệu này.
StreetAd dress | Chứa StreetAddress của khóa học |
City | Chứa thành phố của khóa học |
State | Chứa state của khóa học |
PostalCo de | Chứa mã bưu điện hay mã zip |
Country | Chứa đất nước của khóa học |
Telephon e | Chứa số phone của khóa học |
Price | Chứa giá của khóa học |
Descripti on | Diễn giải về khóa học |
Cột
Bảng Tee
Các cột được liệt kê như sau:
Diễn giải | |
Id | Chứa ID của tee |
Slope | Chứa một đơn vị đo của mức độ khó của tee. |
Distan ce | Chứa một đơn vị đo trung bình cho tất cả các khoảng cách của các lỗ. |
Descri ption | Chứa diễn giải |
Cours eId | Chứa khóa liên hệ với khóa học tương ứng |
Bảng Hole
Diễn giải | |
Id | Chứa ID của Hole |
TeeI d | Chứa một khóa tham chiếu đến tee ID |
Han dicap | 1-18: Độ bất lợi |
Leng th | Khoảng cách của lỗ |
Hole | Số lỗ: 1-18 |
Par | Chứa đựng sự ngang hàng của lỗ. |
Cột | Diễn giải |
176 |
Bảng Golfer
Id | Chứa ID của Golfer |
FirstNam e | First name của người chơi |
LastNam e | Lat Name của người chơi |
StreetAd dress | Địa chỉ street của người chơi |
City | Thành phố của người chơi |
State | state của người chơi |
PostalCo de | Mã bưu điện |
Country | quốc gia của người chơi |
Email của người chơi | |
Phone | Số điện thoại của người chơi |
Usernam e | tên người sử dụng |
Passwor d | Mật khẩu |
Cột
Bảng Bookings
Được xem như bảng nhật ký:
Diễn giải | |
Id | Chứa ID của booking |
Cou rseId | Chứa khóa liên hệ đến ID của khóa học |
Golf er | Chứa khóa liên hệ với người chơi golf |
Tee Date | Chứa ngày của Tee |
Tee Time | Chứa giờ của Tee |
.NET Studio sẽ tự động sinh mã adapter và đặt nó trong tập tin .asmx.cs của dự án. Chúng ta có thể cần tinh chỉnh lại mã này, tuy nhiên, chúng ta cần biết nó làm thế nào. Đoạn mã sau trong tập tin GolfCourseService.asmx.cs:
this.oleDbUpdateCommand5 = new System.Data.OleDb.OleDbCommand(); this.oleDbSelectCommand5 = new System.Data.OleDb.OleDbCommand(); this.oleDbInsertCommand5 = new System.Data.OleDb.OleDbCommand(); this.oleDbDeleteCommand5 = new System.Data.OleDb.OleDbCommand(); this.golferDataAdapter = new System.Data.OleDb.OleDbDataAdapter();
Kế tiếp chúng ta cần cấu hình cho mỗi lớp OLE-DB Command:
this.oleDbInsertCommand5.CommandText = "INSERT INTO golfers(city, country, email, firstName, lastName, phone, postalCode," +
" state, streetAddress, [password], username) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, " + "?, ?)";
this.oleDbInsertCommand5.Connection = this.oleDbConnection1;
this.oleDbInsertCommand5.Parameters.Add(new System.Data.OleDb. OleDbParameter("city", System.Data.OleDb.OleDbType.Char, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "city", System.Data.DataRowVersion.Current, null));
this.oleDbInsertCommand5.Parameters.Add(new System.Data.OleDb. OleDbParameter("country", System.Data.OleDb.OleDbType.Char, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "country", System.Data.DataRowVersion.Current, null));
this.oleDbInsertCommand5.Parameters.Add(new System.Data.OleDb. OleDbParameter("email", System.Data.OleDb.OleDbType.Char, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "email", System.Data.DataRowVersion.Current, null));
this.oleDbInsertCommand5.Parameters.Add(new System.Data.OleDb. OleDbParameter("firstName", System.Data.OleDb.OleDbType.Char, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "firstName", System.Data.DataRowVersion.Current, null));
this.oleDbInsertCommand5.Parameters.Add(new System.Data.OleDb. OleDbParameter("lastName", System.Data.OleDb.OleDbType.Char, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "lastName", System.Data.DataRowVersion.Current, null));
this.oleDbInsertCommand5.Parameters.Add(new System.Data.OleDb. OleDbParameter("phone", System.Data.OleDb.OleDbType.Char, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "phone", System.Data.DataRowVersion.Current, null));
this.oleDbInsertCommand5.Parameters.Add(new System.Data.OleDb. OleDbParameter("postalCode", System.Data.OleDb.OleDbType.Char, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "postalCode", System.Data.DataRowVersion.Current, null));
this.oleDbInsertCommand5.Parameters.Add(new System.Data.OleDb. OleDbParameter("state", System.Data.OleDb.OleDbType.Char, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "state", System.Data.DataRowVersion.Current, null));
this.oleDbInsertCommand5.Parameters.Add(new System.Data.OleDb. OleDbParameter("streetAddress", System.Data.OleDb.OleDbType.Char, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "streetAddress", System.Data.DataRowVersion. Current, null));
this.oleDbInsertCommand5.Parameters.Add(new System.Data.OleDb. OleDbParameter("password", System.Data.OleDb.OleDbType.Char, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "password", System.Data.DataRowVersion.Current, null));
this.oleDbInsertCommand5.Parameters.Add(new System.Data.OleDb. OleDbParameter("username", System.Data.OleDb.OleDbType.Char, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "username", System.Data.DataRowVersion.Current, null));
Các câu lệnh Inser, Delete, Select, Update se bảng golfer: this.golferDataAdapter.DeleteCommand = this.oleDbDeleteCommand5; this.golferDataAdapter.InsertCommand = this.oleDbInsertCommand5; this.golferDataAdapter.SelectCommand = this.oleDbSelectCommand5; this.golferDataAdapter.UpdateCommand = this.oleDbUpdateCommand5; Kết gắn bảng chỉ định với dataset:
this.golferDataAdapter.TableMappings.AddRange(new System.Data.
Common.DataTableMapping[] {
new System.Data.Common.DataTableMapping("Table", "golfers", new System.Data.Common.DataColumnMapping[] {
new System.Data.Common.DataColumnMapping("city", "city"),
new System.Data.Common.DataColumnMapping("country", "country"), new System.Data.Common.DataColumnMapping("email", "email"),
new System.Data.Common.DataColumnMapping("firstName", "firstName"), new System.Data.Common.DataColumnMapping("id", "id"),
new System.Data.Common.DataColumnMapping("lastName", "lastName"), new System.Data.Common.DataColumnMapping("phone", "phone"),
new System.Data.Common.DataColumnMapping("postalCode", "postalCode"),
new System.Data.Common.DataColumnMapping("state", "state"),
new System.Data.Common.DataColumnMapping("streetAddress", "streetAddress"), new System.Data.Common.DataColumnMapping("password", "password"),
new System.Data.Common.DataColumnMapping("username", "username")
})
});
Đó là adapter cho golfer. GolfCourse
Lớp được định nghĩa trong tập tin GolfCourse. Đối tượng GolfCourse chuyển thông tin về cho một trình khách dịch vụ Web XML:
using System; using System.Data;
namespace TeeTimes
{
/// <summary>
/// A GolfCourse
/// </summary>
public class GolfCourse
{
public int id;
public String name; public String description; public String price; public String telephone; public Address address; public Tee[] tees;
Đối tượng này có 4 phương thức kiến tạo khác nhau. public GolfCourse()
{
id = 0; name = "";
description = ""; price = ""; telephone = "";
address = new Address(); tees = null;
}
public GolfCourse(courseDataSet.courseRow c)
{
name = ""; description = ""; price = "";
address = new Address(); tees = null;
id = c.id;
if (!c.IsnameNull()) name = c.name;
if (!c.IsdescriptionNull()) description = c.description; if (!c.IspriceNull())
price = c.price;
if (!c.IstelephoneNull()) telephone = c.telephone;
if (!c.IsstreetAddressNull()) address.street = c.streetAddress; if (!c.IscityNull())
address.city = c.city; if (!c.IsstateNull())
address.state = c.state; if (!c.IspostalCodeNull())
address.postalCode = c.postalCode; if (!c.IscountryNull())
address.country = c.country;
}
public GolfCourse(DataRowView c)
{
id = 0; name = "";
description = ""; price = "";
address = new Address(); tees = null;
id = Int32.Parse(c["id"].ToString());
name = c["name"].ToString(); description = c["description"].ToString(); price = c["price"].ToString();
telephone = c["telephone"].ToString(); address.street = c["streetAddress"].ToString(); address.city = c["city"].ToString(); address.state = c["state"].ToString();
address.postalCode = c["postalCode"].ToString(); address.country = c["country"].ToString();
}
public GolfCourse(courseDataSet ds, int courseId)
{
id = 0; name = "";
description = ""; price = "";
address = new Address();
courseDataSet.courseRow c = ds.course.FindByid(courseId);
if (c != null)
{
id = courseId; name = ""; description = ""; price = "";
address = new Address(); if (!c.IsnameNull())
name = c.name;
if (!c.IsdescriptionNull()) description = c.description; if (!c.IspriceNull())
price = c.price;
if (!c.IstelephoneNull()) telephone = c.telephone;
if (!c.IsstreetAddressNull()) address.street = c.streetAddress; if (!c.IscityNull())
address.city = c.city; if (!c.IsstateNull())
address.state = c.state; if (!c.IspostalCodeNull())
address.postalCode = c.postalCode; if (!c.IscountryNull())
address.country = c.country;
Kiến tạo GolfCourse tìm kiếm tất cả đối tượng Tee và đưa vào mảng tees: DataView teeView = new DataView(ds.tee);
int teeCnt = ds.tee.Count; teeView.RowFilter = "courseId = "+courseId; int cnt = 0;
tees = new Tee[teeView.Count]; foreach (DataRowView r in teeView)
{
int tee_id = Int32.Parse(r["id"].ToString()); Tee tee = new Tee(ds,tee_id);
tees[cnt] = tee; cnt++;
}
}
}
Các thuộc tính lấy và cài đặt giá trị: public int getId() { return id; }
public String getName() { return name; }
public String getDescription() { return description; } public Address getAddress() { return address; } public String getPrice() { return price; }
public String getTelephone() { return telephone; } public void setId(int _id) { id = _id; }
public void setName(String _name) { name = _name; }
public void setDescription(String _description) { description = _description;} public void setPrice(String _price) { price = _price; }
public void setTelephone(String _telephone) { telephone = _telephone; }
Phương thức setAddress( ) cập nhật địa chỉ của đối tượng:
public void setAddress(String street, String city, String state, String postalCode, String country)
{