Kết nối CSDL bất kỳ dùng ODBC

Một phần của tài liệu bài giảng thiết kế webside (Trang 51)

X. Xuất bản web

c. Kết nối CSDL bất kỳ dùng ODBC

Bạn có thể kết nối tới một CSDL bất kỳ thông qua kết nối ODBC dùng tên nguồn dữ liệu(DSN). Giả sử bạn đã tạo một DSN với CSDL Access northwind.mdb có tên là “AccNorth” bạn thực hiện kết nối như sau:

<% set conn=Server.CreateObject(“ADODB.Connection”) conn.Open “AccNorth” %> 6.3 Tạo Recordset

Sau khi mở kết nối CSDL, để đọc được dữ liệu bạn phải nạp dữ liệu vào recordset Giả sử để mở bảng Customers trong CSDL northwind.mdb bạn thực hiện như sau: <%

DATA SOURCE=c:\mydata\northwind.mdb” ‘Mở kết nối conn Conn.Open.strconn ‘Tạo recordset rs Set rs=Server.CreateObject(“ADODB.recordset”) ‘Nạp dữ liệu vào rs

Rs.Open “Customers”, conn %>

Hoặc bạn có thể dùng lệnh SQL để truy vấn dữ liệu trong bảng Customers như sau: <% rs.Open “select * from Customers”, conn %>

Thực hiện tương tự khi bạn đọc dữ liệu từ SQL Server.

6.4 Hiển thị dữ liệu

Sau khi nạp dữ liệu vào recordset, chúng ta sẽ thấy cách hiển thị dữ liệu trong bảng Customers lên trang web như sau:

<html> <body> <% ‘Kết nối Access: Strconn=”provider=Microsoft.Jet.OLEDB.4.0;data source=”C:\mydata\northwind.mdb”

mySQL=”select * from customers”

set conn=server.creatobject(“ADODB.connection”) conn.open strconn

set rs=Server.CreateObject(“ADODB.recordset”) rs.Open mySQL, conn

do until rs.EOF

for each x in rs.Fields

Response.Write(“<b>”&x.name&”</b>”) Respone.Write(“=”) Respone.Write(x.value & “br>”) Next Response.Write(“<br>”) Rs.MoveNext Loop Rs.close %> </body> </html>

6.5 Truy vấn dữ liệu

Thay vì nạp hết tất cả dữ liệu trong tất cả các cột của bảng, ta có thể giới hạn bớt kết quả đọc bằng cách thực hiệnh truy vấn dữ liệu theo một số điều kiện. Giả sử ta chỉ cần lấy dữ liệu của các cột “CompanyName”, “ContactName” và “Phone” với điều kiện CustomerID=”ANTON”, ta viết mệnh đề truy vấn trong tham số mySQL như sau:

<%

mySQL = “select CompantName, ContactName, Phone from Customers where CustomerID = “ANTON”

%> Ví dụ: <html> <body> <% ‘Kết nối Access: Strconn=”provider=Microsoft.Jet.OLEDB.4.0;data source=”C:\mydata\northwind.mdb”

mySQL = “select CompantName, ContactName, Phone From Customers where CustomerID = “ANTON”

set conn=server.creatobject(“ADODB.connection”) conn.open strconn

set rs=Server.CreateObject(“ADODB.recordset”) rs.Open mySQL, conn

%>

<table border=”1” width=”100%” cellspacing=0> <tr>

<% for each x in rs.Fields

Response.write(“<th>” & x.name & “</th>”) Next

%> </tr>

<% Do until rs.EOF %> <tr>

<% for each x in rs.Fields %>

rs.close conn.close %> </table> </body> </html> 6.6 Sắp xếp dữ liệu

Để dữ liệu trả về được sắp xếp theo thứ tự, ta sử dụng mệnh đề ORDER BY. Ví dụ: sắp xếp giá trị cột CompanyName tăng dần:

<% mySQL = “select CompantName, ContactName, Phone from Customers ORDER BY CompanyName desc

%>

Để sắp xếp nhiều cột, ta thêm các cột vào sau mệnh đề ORDER BY, các cột cách nhau dấu phẩy.

6.7 Thêm mới mẩu tin

Để thêm một mẩu tin mới vào bảng dữ liệu quản lý bới đối tượng Recordset, ta gọi phương thức AddNew như sau:

mySQL = “Select * From Customers” rs.open mySQL, conn

rs.AddNew With rs

.Fields (“CompanyName”) = ‘NewCompanyName’

.Fields (“ContactName”) = ‘NewContactName’

.Fields (“Phone”) = ‘NewPhone’ End With

‘Lưu giá trị cho mẩu tin’

rs.Update

6.8 Chỉnh sửa nội dung mẩu tin

Để chỉnh sửa mẩu tin đã có ta gán nội dung mới cho trường tương ứng sau đó gọi phương thức Update. Ví dụ:

mySQL = “Select * From Customers Where CompanyName=’Cname’” rs.open mySQL, conn

‘Thay đổi nội dung phone của mẩu tin’

With rs

.Fields (“Phone”) = ‘newPhone’ End With

‘Lưu giá trị’

6.9 Xóa mẩu tin hoện hành

Nếu muốn xóa mẩu tin hoện hành, đơn giản ta chỉ cần gọi phương thức Delete của Recordset. Ví dụ:

mySQL = “Select * From Customers Where CompanyName=’Cname’” rs.open mySQL, conn

‘Xóa mẩu tin có CompanyName=’Cname’ rs.Delete

6.10 Tìm kiếm trên recordsets

Tìm kiếm recordset được thực hiện thông qua câu lệnh SQL. Ví dụ để tìm số điện thoại của khách hàng của một công ty

<%

mySQL = “Select * From Customers

Where CompanyName=’ “+Cname++” ‘ rs.open.mySQL, conn

‘Nếu tìm thấy If (not rs.EOF) then

Response.write(“Tìm thấy”) Else Response.write(“Không tìm thấy”) Endif %> 7. Kết chương

Truy cập vào cơ sở dữ liệu từ trang web là một trong những tính năng quan trọng nhất khi xây dựng ứng dụng web. Bằng việc kết hợp mã kịch bản ASP và thành phần ADO, ta có thể dễ dàng thực hiện tương tác cơ sở dữ liệu để thêm, sửa đổi hoặc xóa dữ liệu trong cơ sở dữ liệu như Access, SQL.

Một phần của tài liệu bài giảng thiết kế webside (Trang 51)

Tải bản đầy đủ (DOC)

(62 trang)
w