Tải bản đầy đủ (.ppt) (19 trang)

Bài giảng điện tử môn tin học: Lập trình CSDL bằng WinForm pptx

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 (348.59 KB, 19 trang )

Phần 3: Lập trình CSDL bằng WinForm
Nội Dung

Tổng quan về ADO.NET

Sử dụng các Database Connection

Sử dụng Command

Truy cập cơ sở dữ liệu với Data Reader

Sử dụng DataSet

Hiển thị dữ liệu sử dụng DataGridView

Sử dụng Store Procedure

Cập nhật dữ liệu
08/13/14 Võ Phương Bình – ITFAC - DLU 2
ADO.NET

ADO (ActiveX Data Objects) là một thư
viện của các thành phần COM, bao gồm các
thành phần:

Connection, Command, Recordset, và Field.

ADO.NET chứa 2 không gian tên cơ sơ dữ
liệu:

Một cho SQL Server.



Một cho các cơ sở dữ liệu được trình bày thông
qua một giao diện OLE DB.
08/13/14 Võ Phương Bình – ITFAC - DLU 3
ADO.NET (tt)

Namespace

System.Data

Các lớp truy xuất dữ liệu chung

System.Data.OleDb

Các lớp của OLE DB provider

System.Data.SqlClient

Các lớp của SQL Server provider
08/13/14 Võ Phương Bình – ITFAC - DLU 4
ADO.NET (tt)

Các lớp dùng chung

DataSet

Chứa các DataTable, quan hệ giữa các bảng, và được
thiết kế cho truy xuất dữ liệu không kết nối.

DataTable


Gồm các thuộc tính dữ liệu DataColumn và DataRows.

DataRow

Một dòng trong bảng cơ sở dữ liệu.

DataColumn

Chứa tên và kiểu dữ liệu của một cột.
08/13/14 Võ Phương Bình – ITFAC - DLU 5
ADO.NET (tt)

Các lớp cơ sở dữ liệu chuyên biệt

SqlCommand, OleDbCommand

Thực thi lệnh SQL hoặc lời gọi stored procedure.

SqlConnection, OleDbConnection

Kết nối với cơ sở dữ liệu.

SqlDataAdapter, OleDbDataAdapter

Chứa các câu lệnh select, insert, update, và delete, được
sử dụng để tạo một DataSet và cập nhật Database.

SqlDataReader, OleDbDataReader


Bộ dữ liệu chỉ đọc, kết nối với DataReader.

SqlParameter, OleDbParameter

Tham số cho một stored procedure.
08/13/14 Võ Phương Bình – ITFAC - DLU 6
Database Connection

Đoạn mã sau đây mô tả cách để tạo, mở và đóng một
kết nối đến cơ sở dữ liệu Northwind:
1. using System.Data.SqlClient;
2. string source = "server=(local);
database=Northwind; uid=sa; pwd=sa";
3. SqlConnection conn = new
SqlConnection(source);
4. conn.Open();
5. // SQL truy vấn …
6. conn.Close();
08/13/14 Võ Phương Bình – ITFAC - DLU 7
Command

Command dùng chuỗi lệnh SQL để truy xuất dữ
liệu hay sử dụng Store Procedure.
1. string select = "SELECT ContactName,
CompanyName FROM Customers";
2. SqlCommand cmd = new SqlCommand(select,
conn);

CommandType: thuộc tính chỉ việc sử dụng chuỗi
SQL hay Store Procedure.

08/13/14 Võ Phương Bình – ITFAC - DLU 8
Command (tt)
CommandType Example
Text
(default)
String select = "SELECT ContactName FROM
Customers";
SqlCommand cmd = new SqlCommand(select , conn);
StoredProcedure SqlCommand cmd = new
SqlCommand("CustOrderHist", conn);
cmd.CommandType =
CommandType.StoredProcedure;
cmd.Parameters.Add("@CustomerID", "QUICK");
TableDirect OleDbCommand cmd = new
OleDbCommand("Categories", conn);
cmd.CommandType = CommandType.TableDirect;
08/13/14 Võ Phương Bình – ITFAC - DLU 9
Command (tt)

Thực thi Command

ExecuteNonQuery()

Thực thi các command không trả về kết quả gì cả

ExecuteReader()

Thực thi các command và trả về kiểu
IDataReader


ExecuteScalar()

Thực thi các command và trả về một giá trị đơn
08/13/14 Võ Phương Bình – ITFAC - DLU 10
Gọi Stored Procedure

CREATE PROCEDURE SelectCustomers

(

@CustomerID nchar(5),

@Count int OUT

)

AS

Begin

Select @Count = count(*) From Customers Where CustomerID
> @CustomerID

Select * From Customers Where CustomerID = @CustomerID

End

GO
08/13/14 Võ Phương Bình – ITFAC - DLU 11
Gọi Stored Procedure (tt)

1. SqlCommand cmd = new SqlCommand("SelectCustomers",
conn);
2. cmd.CommandType = CommandType.StoredProcedure;
1. SqlParameter pa1 = new SqlParameter("@CustomerID",
comboBox1.Text);
2. SqlParameter pa2 = new SqlParameter("@Count",
SqlDbType.Int);
3. pa2.Direction = ParameterDirection.Output;
4. cmd.Parameters.Add(pa1);
5. cmd.Parameters.Add(pa2);
3. SqlDataAdapter da = new SqlDataAdapter(cmd);
08/13/14 Võ Phương Bình – ITFAC - DLU 12
Data Reader

Data reader là cách đơn giản nhất và nhanh nhất
để chọn một vài dữ liệu từ một nguồn cơ sơ dữ
liệu, nhưng có ít tính năng.
1. SqlCommand cmd = new SqlCommand(select ,
conn);
2. SqlDataReader aReader = cmd.ExecuteReader();
while(aReader.Read())
Console.WriteLine(" '{0}' from {1}" ,
aReader.GetString(0) , aReader.GetString(1));
1. aReader.Close();
08/13/14 Võ Phương Bình – ITFAC - DLU 13
DataSet

DataSet

DataTable


DataRow

DataColumn

UniqueConstraint

ForeignKeyConstraint

DataRelation

DefaultView
08/13/14 Võ Phương Bình – ITFAC - DLU 14
DataSet (tt)
1. SqlDataAdapter da = new SqlDataAdapter(select,
conn);
2. DataSet ds = new DataSet();
3. da.Fill(ds , "Customers");
4. foreach(DataRow row in ds.Tables
["Customers"].Rows)
5. Console.WriteLine("'{0}' from {1}”, row[0],
row[1]);
08/13/14 Võ Phương Bình – ITFAC - DLU 15
DataGridView
1. SqlDataAdapter da = new
SqlDataAdapter(select, conn);
2. DataSet ds = new DataSet();
3. da.Fill(ds , "Customers");
4. dataGridView1.DataSource = ds.Tables[0];
08/13/14 Võ Phương Bình – ITFAC - DLU 16

DataGridView (tt)
08/13/14 Võ Phương Bình – ITFAC - DLU 17
Cập nhật dữ liệu
08/13/14 Võ Phương Bình – ITFAC - DLU 18
Cập nhật dữ liệu

Cơ bản thực thi các câu lệnh SQL cập nhật:
Insert, Update, Delete

Có 2 cách:

Thực thi trực tiếp câu lệnh SQL.

Gọi Store Procedure.
08/13/14 Võ Phương Bình – ITFAC - DLU 19

×