1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài giảng Lập trình trên môi trường Window, Lập trình trên môi trường Window, Kỹ thuật lập trình, Crystal report, Thiết kế báo cáo

20 12 0

Đ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 20
Dung lượng 563,89 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

DataAdapter chỉ thao tác với một nguồn dữ liệu qua một đối tượng connection đang kết nối, khi Connection chưa mở thì DataAdapter sẽ tự động mở kết nối khi cần và đóng lại.[r]

Trang 1

Chương 6:

Giảng Viên: ThS Dương Thành Phết

Email: phetcm@gmail.com – YahooID: phetcm

Website: http://www.thayphet.net

Tel: 0918158670

Trang 2

NỘI DUNG

1 Đối tượng Connection

2 Đối tượng Command

3 Đối tượng DataReadder

4 Đối tượng Dataset

5 Đối tượng DataAdapter

6 Giao tiếp CSDL theo mô hình 1 lớp

7 Giao tiếp CSDL theo mô hình 1 lớp

Trang 3

 Vai trò của Connection trong ADO.net là tạo kết nối giữa ứng dụng với CSDL

 Khi cthực hiện kết nối cần xác định các thông tin cho Connection thông qua thuộc tính Connection String Tùy thuoc vào Data Provider

 Với SQLServer

• Server name

• Database name

• User name

• Password

 Với Access

• Database name

• User name

• Password

Trang 4

Thuộc tính

 ConnectionString: Chuỗi kết nối DataSource

 State: Tình trạng kết nối: Connecting (đang kêt nối), Open (đã kêt nối), Broken (kết nối bị ngắt khi

đã kết nối), Closed (kết nối đã đóng)

Phương thức

 Open(): Thiết lập kết nối đến DS

 Close(): Đóng kết nối với DS

1 ĐỐI TƯỢNG CONNECTION

Trang 5

Các bước tạo kết nối

 Bước 1: Khởi tạo đối tượng Connection với tham số connection string đối với database tương ứng

 Bước 2: Thiết lập kết nối đến database bằng phương thức Open

 Bước 3: Thực hiện các thao tác khai thác dữ liệu (select, insert, delete, update) từ database

 Bước 4: đóng kết nối đến database bằng phương thức Close

Trang 6

using System.Data.SqlClient;

SqlConnection cnn = new SqlConnection();

cnn.ConnectionString =

server =localhost ; database =Northwind ; uid =sa; pwd =sa"; cnn.Open(); //Mở kết nối

//xử lý trong quá trình kết nối

cnn.Close(); //Đóng két nối

1 ĐỐI TƯỢNG CONNECTION

Sử dụng tên miền: System.Data.SqlClient;

Server: Chỉ định tên máy chứa Database

Database: Chỉ định tên cơ sở dữ liệu

Uid: Tên tài khỏan đăng nhập SQLServer (nếu có)

Pwd: Mật khẩu đăng nhập (nếu có)

Tạo kết nối với SQLServer (cách 1)

Trang 7

using System.Data.SqlClient;

SqlConnection cnn = new SqlConnection();

cnn.ConnectionString = “ Data Source =localhost;

Initial Catalog =Northwind; UserId =sa; Password =sa” cnn.Open(); //Mở kết nối

//xử lý trong quá trình kết nối

cnn.Close(); //Đóng két nối

DataSource: Chỉ định tên máy chứa Database

Initial Catalog: Chỉ định tên cơ sở dữ liệu

Userid: Tên tài khỏan đăng nhập SQLServer (nếu có)

Password: Mật khẩu đăng nhập (nếu có)

Tạo kết nối với SQLServer (cách 2)

Trang 8

using System.Data.OleDb;

OleDBConnection cnn = new OleDbSqlConnection();

cnn.ConnectionString = “Provider = Microsoft.Jet.OLEDB.4.0;

Data Source=QLHOCSINH.MDB"; cnn.Open();

//xử lý trong quá trình kết nối

cnn.Close();

Tạo kết nối với MS Access

Đối với MS Access 2007/2010 thì Provider=Microsoft.ACE.OLEDB.12.0

1 ĐỐI TƯỢNG CONNECTION

Trang 9

Minh họa:

using System.Data.SqlClient;

SqlConnection cnn = new SqlConnection();

private void btLogin_Click(object sender, EventArgs e)

{

String Tenmay = txtServername.Text;

String TenDN = txtUsername.Text;

String Matkhau = txtPassword.Text;

String TenCSDL = txtDatabasename.Text;

cnn.ConnectionString = "Server=" + Tenmay + "; Database=" + TenCSDL + " ;

User Id=" + TenDN + "; Password= " + Matkhau;

try

{

cnn.Open();

MessageBox.Show("Kết nối thành công", "Thông báo");

cnn.Close();

}

catch

{

MessageBox.Show("Kết nối thất bại", "Thông báo");

}

Trang 10

2 ĐỐI TƯỢNG COMMAND

 Quá trình tương tác với database cần phải biết hành động nào muốn xảy ra Điều này được thực hiện bởi đối tượng command

 Dùng đối tượng command để gửi một câu lệnh SQL tới database

 Một đối tượng command dùng một đối tượng connection để xác định database nào sẽ được truy xuất

 Có thể dùng một đối tượng command riêng lẻ để thực thi lệnh trực tiếp, hoặc gắn cho một SqlDataAdapter

Trang 11

Thuộc tính:

 Connection:Kết nối để thực hiện lệnh

 CommandText:Câu lệnh cần thực hiện

 CommandType:Loại câu lệnh (Text, TableDirect, StoredProc)

 ExecuteScalar(): Thực hiện lệnh và trả về giá trị đơn

 ExecuteNonQuery(): Gọi các lệnh SQL, store, trả về số row bị tác động (Insert, Update, Delete…)

 ExecuteReader():Thực hiện lệnh và trả về DataReader

Trang 12

SqlConnection cnn = new SqlConnection();

cnn.ConnectionString = “ Data Source =localhost;

Initial Catalog =QLsinhvien; User Id =sa; Password =sa” cnn.Open(); //Mở kết nối

SqlCommand cmd = new SqlCommand();

cmd.Connection = cnn;

cmd.CommandText =

“Select Count(*) From TableName”; int n = (int) cmd.ExecuteScalar();

cnn.Close();

2 ĐỐI TƯỢNG COMMAND

SQL Command với câu lệnh Select

Trang 13

SqlCommand cmd = new SqlCommand();

cmd.Connection = cnn;

String MaMH = txtMaMH.Text;

String TenMH = txtTenMH.Text;

int Sotiet = int.Parse(txtSotiet.Text);

cmd.CommandText = "Insert into Monhoc(MaMH,TenMH, Sotiet)

values('" + MaMH + "',N'" + TenMH +"'," + Sotiet +")"; cmd.ExecuteNonQuery();

SQL Command với câu lệnh Insert, Update, Delete

Trang 14

3 ĐỐI TƯỢNG DATAREADER

 Nhiều thao tác dữ liệu chỉ lấy một luồng dữ liệu để đọc Đối tượng data Reader cho phép lấy được kết quả của câu lệnh SELECT từ đối tượng command

 Để tăng hiệu suất, dữ liệu trả về từ một data reader

là một luồng dữ liệu fast forward-only có lợi về mặt tốc độ

 Là đối tượng truy cập dữ liệu trực tiếp sử dụng con trỏ phí Server và duy trì kết nối trong suốt quá trình đọc dữ liệu

 Tuy nhiên nếu phải thao tác dữ liệu, thì một DataSet

sẽ là một đối tượng tốt hơn để làm việc

Trang 15

Các thuộc tính

 FieldCout: Số cột trên dòng hiện hành của DataReader

 IsClosed: Cho biết dataReader đã đóng

 Item: Trị của cột truyền vào Tham số truyền vào là tên cột (hoặc số thứ tự từ 0)

Trang 16

3 ĐỐI TƯỢNG DATAREADER

Các phương thức

 Close: Đóng DataReader

 GetFieldType: Trả về kiểu dữ liệu của cột truyền vào

 GetName: Trả về tên của cột truyền vào

 GetValue: Trả về trị của cột truyền vào

 Read : Di chuyển đến dòng kế tiếp và trả về true nếu còn dòng để di chuyển, ngược lại trả về False

Trong khi dataReader đang mở các thao tác dữ liệu trên nguồn dữ liệu đều không thể cho đến khi dataRaeder đóng lại bằng lệnh Close

Trang 17

SqlCommand cmd = new SqlCommand();

cmd.Connection = cnn;

cmd.CommandText = "Select * From Monhoc";

cmd.CommandType = CommandType.Text;

SqlDataReader dr ;

dr = cmd.ExecuteReader();

lstMonhoc.Items.Clear();

while (dr.Read())

lstMonhoc.Items.Add(dr["TenMH"]);

Trang 18

4 DATA ADAPTER

4.1 Giới thiệu

 Để lầy dữ liệu từ nguồn dữ liệu vầ cho ứng dụng, chúng ta sử dụng một đối tượng gọi là DataAdapter Đối tượng này cho phép ta lấy cấu trúc và dữ liệu của các bảng trong nguồn dữ liệu

 DataAdapte là một bộ gồm 4 đối tượng command:

 SelectCommand: Cho phép lấy thông tin từ nguồn

 InsertCommand: Cho phép thêm dữ liệu vào bảng

 UpdateCommand: Cho phép điều chỉnh dữ liệu của bảng

 DeleteCommand: Cho phép xóa dữ liệu của bảng

Trang 19

 Đôi khi cần làm việc ở chế độ read-only và ít khi cần thay đổi dữ liệu nguồn, cần lưu trữ tạm dữ liệu trong

bộ nhớ để hạn chế truy xuất đến database Data adapter làm điều này dễ dàng bằng cách giúp quản lý

dữ liệu trong chế độ ngắt kết nối

 Data Adapter sẽ đổ vào DataSet khi đọc dữ liệu và thực hiện thay đổi dữ liệu một lượt vào database Data adapter chứa một tham chiếu đến đối tượng connection và mở/đóng kết nối tự động khi đọc và ghi

dữ liệu vào database

Trang 20

4 DATA ADAPTER

4.2 Tạo DataAdapter

<Loai>DataAdapter <Tên> =

new <Loai>DataAdapter(Lệnh, biến connnection);

Với SQLSever:

sqlDataAdapterDataAdapter <Tên> =

new SQLDataAdapter(Lệnh, biến connection);

DataAdapter chỉ thao tác với một nguồn dữ liệu qua một đối tượng connection đang kết nối, khi Connection chưa

mở thì DataAdapter sẽ tự động mở kết nối khi cần và đóng lại

Ngày đăng: 09/03/2021, 02:34

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w