Lập trình web nâng cao XML - Trường CĐN Đà Lạt - 23

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 1

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 2

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:

Cột

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!

Xem toàn bộ 258 trang tài liệu này.

Diễn giải

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:

Cột

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


Cột

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

Diễn giải

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

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ý:

Côt

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)

{

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 19/11/2023