1. Trang chủ
  2. » Công Nghệ Thông Tin

ASP .NET cơ sở dữ liệu với ADO .NET

40 1,2K 11
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 40
Dung lượng 505 KB

Nội dung

ASP .NET cơ sở dữ liệu với ADO .NET

Trang 1

Truy cập dữ liệu với ADO.NET

Hà Đồng Hưng

Trang 4

Cũng có thể dùng ADO.NET cho sự phân cấp, cache dữ liệu

để làm việc với dữ liệu offline

Trang 5

Tại sao là công nghệ truy cập dữ liệu mới?

Data Access Objects (DAO)

– Được thiết kế để tương tác với các csdl dựa trên file cục bộ

Remote Data Objects (RDO)

– Một tầng truy cập dữ liệu nhanh, nhe được thiết kế để tương tác với các csdl lớn hơn dựa trên server (SQL Server, Oracle…)

Trang 6

Các hạn chế của các công nghệ cũ

• Vấn đề:

– Người phát triển cần phải xây dựng các ứng dụng mạnh mẽ hơn

• Làm việc với dữ liệu dạng XML

• Có thể chuyển các đối tượng Recordset của ADO giữa các tầng khác nhau của ứng dụng, nhưng không thể kết hợp nội dung các đối tượng Recordset

• …

– Các phiên bản ADO gần đây đã thêm các thành phần XML, nhưng ADO sẽ không bao giờ xữ lý dữ liệu XML hiệu quả bằng ADO.NET)

Trang 7

Mô hình ADO.NET

• ADO.NET được thiết kế để giúp các nhà phát triển xây dựng hiệu quả các ứng dụng csdl đa tầng qua intranet và Internet

Trang 8

Mô hình ADO.NET

• Thành phần hướng không kết nối của mô hình đối tượng

ADO.NET không giao tiếp không tương tác trực tiếp với các đối tượng kết nối

• Một sự chuyển đổi lớn từ các mô hình đối tượng truy cập dữ liệu trước của Microsoft

– Trong ADO, đối tượng Recordset lưu trữ kết quả truy vấn

– Gọi phương thức Open để nạp các kết quả truy vấn

– Gọi phương thức Update để đệ trình sự thay đổi trong Recordset lên csdl

• DataSet ADO.NET có thể só sánh về chức năng với ADO

Recordset

– Tuy nhiên, DataSet không tương tác trực tiếp với csdl

– Để nạp dữ liệu từ csdl vào DataSet, Hãy chuyển DataSet vào phương thức Fill của một đối tượng ADO.NET đã kết nối - DataAdapter

Trang 9

Các trình cung cấp dữ liệu NET

(.NET Data Providers )

Các trình cung cấp dữ liệu NET

(.NET Data Providers )

• SQL Client NET Data Provider

– Tương tác với csdl SQL Server, version 7+

• OLE DB NET Data Provider

– Tương tác với nhiều dạng lưu trữ dữ liệu thông qua OLE DB

providers

• Mỗi NET data provider cài đặt các lớp cơ sở giống nhau

– Các lớp cơ sở: Connection, Command, DataReader, Parameter, Transaction

– Tên thực của chúng phụ thuộc vào trình cung cấp dữ liệu (provider)

Trang 11

• Các Đối tượng hướng không kết nối (Disconnected Objects)

– Danh sách Đối tượng– Demo

– Sử dụng trong VS.NET

Trang 12

Sử dụng các đối tượng ADO.NET

Trang 13

Các đối tượng hướng kết nối

• Đối tượng Connection:

– Dùng để kết nối và ngắt kết nối với csdl

• Đối tượng Command

– Trình bày một truy vấn csdl (lấy, sửa đổi…), một lời gọi stored procedure, Một đề nghị (request) lấy về nội dung của một bảng (table) xác định

• Đối tượng DataReader (chỉ đọc dữ liệu)

– Được thiết kế để lấy và khảo sát các dòng trả về bởi từ câu truy vấn một cách nhanh chóng.

• Đối tượng Transaction

• Đối tượng Parameter

Trang 14

Các đối tượng hướng kết nối

Trang 18

strSql = "UPDATE Customers SET CompanyName = 'New'";

OleDB.OleDbCommand cmd = new OleDb.OleDbCommand(strSql, cn);

cmd.ExecuteNonQuery();

…//sql=Update…Set…Where

OleDb.OleDbCommand cmd = new OleDb.OleDbCommand(strSql, cn);

int intRecordsAffected = cmd.ExecuteNonQuery();

if (intRecordsAffected == 0)

Response.Write(“Update failed”);

else

Response.Write(“Update succeeded”);

Trang 19

Connected Objects

Demonstrations Connected Objects

Demonstrations

• Thực hiện truy vấn trả về một giá trị đơn

strSQL = “SELECT COUNT(*) FROM KHACHHANG”;

OleDb.OleDbCommand cmd = new OleDb.OleDbCommand(strSql, cn); int intCustomers = (int)(cmd.ExecuteScalar());

• Thực hiện truy vấn có tham số

strSql = “SELECT * FROM KHACHHANG WHERE MaKH = @Ma”;

OleDbCommand cmd = new OleDbCommand(strSql, cn);

cmd.Parameters.Add("@Ma", “A1”);

OleDbDataReader rdr = cmd.ExecuteReader();

strSQL = “SELECT TenKH FROM KHACHHANG WHERE MaKH = ‘KH1’”; OleDb.OleDbCommand cmd As New OleDb.OleDbCommand(strSql, cn); String strCompanyName = cmd.ExecuteScalar().ToString();

Trang 20

Connected Objects

Demonstrations Connected Objects

Demonstrations

• Thực hiệm một Stored Procedure

OleDbCommand cmd = new OleDbCommand(cn);

Trang 21

– Nếu mở DataReader thứ hai trước khi đóng DataReader trước đó,

ta sẽ nhận được một ngoại lệ (exception) “requires an open and available connection.”

• Nếu ta muốn di chuyển tới và lui giữa các dòng kết quả, ta nên lưu trữ các dòng kết quả trong các đối tượng (DataSet)

Trang 23

Create connection in VS.NET

• Ta có thể tạo kết nối đến Access, SQLServer, Oracle…

• Ta có thể modify (sửa), create (tạo), and delete (xóa) tables, views, stored procedures, database diagrams, and functions (hàm)

ACCESS

SQLServer

Trang 24

Create connection in VS.Net

• Sử dụng connection (kết nối)

– Kéo và thả (connection) kết nối lên màn hình thiết kế

– Và SqlConnection1.Open (hoặc OleDbConnection1.Open)

tại nơi muốn mở kết nối

Trang 25

Creating Commands in VS.NET

• Kéo và thả thành phần

Command từ Toolbox • Xác định một Connection

Trang 26

– Demo– Sử dụng trong VS.NET

Trang 27

Disconnected Objects

• Đối tượng DataSet

– Chứa đựng một tập dữ liệu (set of data)

– Chứa đựng một số các đối tượng DataTable

– Dữ liệu lưu trữ trong một đối tượng DataSet được ngắt kết nối vớicsdl

(database) Mọi sự thay đổi trên dữ liệu được cất giữ trong một DataRow– Cho phép ghi và đọc tập tin XML

• Đối tượng DataTable

– Được sử dụng để khảo sát dữ liệu qua tập hợp dòng và tập hợp cột

– Có thể lưu trữ các kết quả của một truy vấn trong một DataTable thông qua phương thức Fill của đối tượng DataAdapter

• Đối tượng DataRow

– Dùng bộ sưu tập Rows của đối tượng

– Để khảo sát dữ liệu lưu trữ trong một cột cụ thể của dòng, ta sử dụng thuộc

tính item

Trang 28

Disconnected Objects

• DataColumn Object

– corresponds to a column in your table

– doesn’t contain the data stored in your DataTable Instead, it stores

information about the structure of the column

Trang 30

Disconnected Objects

Demonstrations Disconnected Objects

Demonstrations

• Fetch the results of a query into a DataSet

strSql = "SELECT MaKH, TENKH FROM KHACHHANG"

Dim da As New OleDbDataAdapter(strSql, cn)

Dim ds As New DataSet

da.Fill(ds, “MAVATENCUAKH")

• Get the data returned by DataAdapter

Dim da As New OleDbDataAdapter(strSQL, cn)

Dim ds As New DataSet()

da.Fill(ds, “ABC")

Dim tbl As DataTable = ds.Tables(“ABC”)

Dim row As DataRow = tbl.Rows(0)

Response.Write(“Mã khách hàng là " & row(“MaKH")) Response.Write(“Tên khách hàng là " & row(“TenKH"))

Trang 31

• Examine the data

– Use For…Next, While…End While

Trang 32

Disconnected Objects

Demonstrations Disconnected Objects

Demonstrations

• Create DataTable in DataSet

Dim ds As New DataSet()Dim tbl As DataTable = ds.Tables.Add("Customers")

Dim ds As New DataSet Dim tbl As New DataTable("Customers") ds.Tables.Add(tbl)

Trang 33

Disconnected Objects

Demonstrations Disconnected Objects

Demonstrations

• Create a column in DataTable

• Use methods DataTable.PrimaryKey, DataTable.Constraint

– To set PrimaryKey (consisting many properties), constraints…

Dim ds As New DataSet()

Dim tbl As DataTable = ds.Tables.Add("Customers")

Dim col As DataColumn = tbl.Columns.Add("CustomerID") 

Dim ds As New DataSet()

Dim tbl As DataTable = ds.Tables.Add("Orders")

Dim col As DataColumn = tbl.Columns.Add("OrderID", _

GetType(Integer)) 

Trang 34

Disconnected Objects

Demonstrations Disconnected Objects

Demonstrations

• Add new data

Dim row As DataRow = ds.Tables("Customers").NewRowrow("CustomerID") = "ALFKI"

ds.Tables("Customers").Rows.Add(row)

Dim aValues As Object() = {“123", "A", “B", "007"}ds.Tables("Customers").LoadDataRow(aValues, False)

Trang 36

Disconnected Objects

Demonstrations Disconnected Objects

Demonstrations

• Checking database values for Null

Dim rowCustomer As DataRow rowCustomer = ds.Tables("Customers").Rows.Find("ALFKI")

If rowCustomer.IsNull("Phone") Then Response.Write("It's Null") Else

Response.Write("It's not Null") End If

• Setting database values to Null (don’t use the Null keyword from your programming language )

Dim rowCustomer As DataRow rowCustomer = ds.Tables("Customers").Rows.Find("ALFKI") rowCustomer("Phone") = DBNull.Value

Trang 38

Disconnected Objects

– Objects List – Demonstrations

– Using Disconnected objects in VS.NET

Trang 39

Create DataAdapter in VS.NET

• Drag and Drop SQLDataAdapter item (or OleDbAdapter) onto your designer

• Configure this adapter (choose connection, SQL statements…)

Trang 40

Fetch results to DataSet

• Right-click on the DataAdapter item and choose Generate Dataset

• If you choose create a new DataSet,

a XML Schema file will appear

• Write code

SqlDataAdapter1.Fill(DataSet11)

Ngày đăng: 06/09/2012, 16:31

HÌNH ẢNH LIÊN QUAN

Mô hình ADO.NET - ASP .NET cơ sở dữ liệu với ADO .NET
h ình ADO.NET (Trang 7)
– Kéo và thả (connection) kết nối lên màn hình thiết kế - ASP .NET cơ sở dữ liệu với ADO .NET
o và thả (connection) kết nối lên màn hình thiết kế (Trang 24)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w