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

HỆ THỐNG THÔNG TIN - ADO.NET docx

62 339 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 62
Dung lượng 1,96 MB

Nội dung

Nội dungHoàng Hữu Việt Các khái niệm Các đối tượng của ADO.NET Xây dựng lớp truy nhập dữ liệu... Các khái niệmHoàng Hữu Việt ADO.NET là công nghệ truy nhập dữ liệu có cấu trúc Cung cấp g

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN CÁC HỆ THỐNG THÔNG TIN

Chương 5 ADO.NET

Hoàng Hữu Việt – IT Faculty, Vinh University Email: viethh.vinhuni@gmail.com

Trang 2

Nội dung

Hoàng Hữu Việt

Các khái niệm

Các đối tượng của ADO.NET

Xây dựng lớp truy nhập dữ liệu

Trang 3

Các khái niệm

Hoàng Hữu Việt

ADO.NET là công nghệ truy nhập dữ liệu có cấu trúc

Cung cấp giao diện hướng đối tượng hợp

nhất (Uniform object oriented) cho các dữ liệu khác nhau

Cơ sở dữ liệu quan hệ XML

Các dữ liệu khác

Được thiết kế cho các ứng dụng phân tán và

Web

Trang 4

more than one table supported

Trang 5

Các khái niệm

Hoàng Hữu Việt

ADO.NET = ActiveX Data Objects

Các đối tượng ADO.NET chứa trong không

gian tên System.Data.

Các đối tượng ADO.NET chia thành 2 loại

Connected: Các đối tượng truyền thông trực tiếp

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

Disconnected: Các đối tượng không truyền thông

trực tiếp với cơ sở dữ liệu.

Trang 6

Các khái niệm

Hoàng Hữu Việt

Disconnected Objects

DataSet DataTable DataView DataRow DataColumn Constraint DataRelation

Connected Objects

Connection Transaction DataAdapter Command Parameter DataReader

Trang 7

Các khái niệm

Hoàng Hữu Việt

Microsoft 3-Tier Architecture

from: Introduction to Data Access with ADO.NET, http://msdn.microsoft.com/library/

Trang 9

DataViewManager

Trang 10

0 1 2

2

0 1 2

12

0

DataColumn

DataColumn

Trang 11

Các khái niệm

Hoàng Hữu Việt

DataTable

Có thể ánh xạ một bảng vật lý với DataTable Một DataTable là một mảng 2 chiều gồm các dòng

và các cột Một số thuộc tính

Columns: Các cột dữ liệu của DataTable

Count: Số cột trong DataTable

Rows: Các dòng dữ liệu của DataTable

Count: Số dòng trong DataTable

Trang 12

Các khái niệm

Hoàng Hữu Việt

DataTable

Có thể tạo một DataTable trong bộ nhớ

DataTable myTable = new DataTable();

myTable.Columns.Add(“MaKhoa”, typeof(string));

myTable.Columns.Add(“TenKhoa”, typeof(string));

Trang 13

Các khái niệm

Hoàng Hữu Việt

ADO.NET tổ chức thành mô hình đối tượng

System.Data System.Data.OleDb System.Data.Common System.Data.SqlClient

System.Data

.OleDb Common SqlClient SqlTypes

Trang 14

Các khái niệm

Hoàng Hữu Việt

System.Data: Các lớp của ADO.NET

System.Data.OleDb: Các lớp làm việc với

dữ liệu OLE DB

System.Data.SqlClient: Các lớp làm

việc với cở sở dữ liệu SQL Server

Trang 15

Các đối tượng

Hoàng Hữu Việt

ADO.NET Data Providers

Là các lớp truy nhập dữ liệu nguồn

Microsoft SQL Server™ 2000, SQL Server 7 Oracle

Microsoft Access

Thiết lập kết nối giữa DataSets và dữ liệu nguồn

Có 2 thư viện ADO.NET Data Providers

System.Data.OleDb: Dùng truy nhập cơ sở dữ liệu OLE System.Data.SqlClient: Truy nhập SQL Server

Trang 16

Các đối tượng

Hoàng Hữu Việt

ADO.NET Data Providers

.OleDb

OleDbCommand OleDbConnection OleDbDataReader OleDbDataAdapter

Trang 17

Các đối tượng

Hoàng Hữu Việt

Đối tượng Connection

Biểu diển kết nối tới cơ sở dữ liệu

//Ket noi toi co so du lieu MS Access

string conStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +

"Data Source=<DataName>";

OleDbConnection myConnection = new OleDbConnection(conStr);

myConnection.Open();

//Ket noi toi co so du lieu SQL Server

string conStr = “Data Source = <Computer Name>;“ +

“Persist Security Info = true;“ +

“Initial Catalog = <DataName>;“ +

“User Id =name; Password=psw;”

“Connect Timeout = <seconds>”;

SqlConnection myConnection = new SqlConnection(conStr);

myConnection.Open();

Trang 18

Các đối tượng

Hoàng Hữu Việt

Đối tượng DataAdapter

Dùng để lấy dữ liệu từ dữ liệu nguồn vào DataSet Dùng để cập nhật dữ liệu từ DataSet vào dữ liệu nguồn

OleDbDataAdapter làm việc với CSDL MS Access SqlDataAdapter làm việc với dữ liệu SQL Server

Trang 19

Các đối tượng

Hoàng Hữu Việt

Đối tượng DataAdapter

Fill

Update

data store

Trang 20

Các đối tượng

Hoàng Hữu Việt

Đối tượng DataAdapter

Ví dụ phương thức Fill lấy dữ liệu vào DataTable

string conStr = “Data Source = may01;" +

“Initial Catalog = QLSV;“ +

“Persist Security Info = true;“ +

“User Id =sa; Password=sa; Connect Timeout =50 ”;

//Ket noi toi co so du lieu

SqlConnection myConnection = new SqlConnection(conStr);

myConnection.Open();

string sqlStr = “SELECT * FROM tblKhoaDaoTao”;

SqlDataAdapter myDataAdapter = new SqlDataAdapter(sqlStr,myConnection);

DataSet myDataSet = new DataSet();

myDataAdapter.Fill(myDataSet,”tblKhoaDaoTao”);

DataTable myTable = myDataSet.Tables[“tblKhoaDaoTao”];

Trang 21

Các đối tượng

Hoàng Hữu Việt

Đối tượng DataAdapter

Ví dụ xây dựng form hiển thị dữ liệu

Name: txtMaKhoa Name: txtTenKhoa

Name: btnFirst, btnPrevious, btnNext, btnLast

Trang 22

+ + +

Các đối tượng

Hoàng Hữu Việt

Đối tượng DataAdapter

private string conStr = "Data Source = (local);"

"Initial Catalog = QLSinhVien;"

"persist security info = true;"

"User Id=sa; Password=sa; Connect Timeout =50";

private SqlConnection myConnection;

private SqlDataAdapter myDataAdapter;

string SqlStr = "SELECT * FROM tblKhoaDaoTao";

myDataAdapter = new SqlDataAdapter(SqlStr, conStr);

myDataSet = new DataSet();

myDataAdapter.Fill(myDataSet, "tblKhoaDaoTao");

myTable = myDataSet.Tables["tblKhoaDaoTao"];

btnFirst.PerformClick();

Trang 23

Các đối tượng

Hoàng Hữu Việt

Đối tượng DataAdapter

private void btnFirst_Click(object sender, EventArgs e)

Trang 24

Các đối tượng

Hoàng Hữu Việt

Đối tượng DataAdapter

private void btnNext_Click(object sender, EventArgs e)

Trang 25

Các đối tượng

Hoàng Hữu Việt

Đối tượng DataGridView

Dùng để hiển thị dữ liệu từ 1 DataTable Cách thực hiện

Thêm đối tượng DataGridView vào Form

Nháy chuột phải và chọn Add column hoặc Edit

columns

Lần lượt chọn Add để thêm các cột

Mỗi cột cần khai báo các thuộc tính

Name: Tên cột dùng trong mã lệnh Header text: Tiêu đề hiển thị của cột DataPropertyName: Tên cột dữ liệu của DataTable.

Trang 26

Các đối tượng

Hoàng Hữu Việt

Đối tượng DataGridView

DataSource: Tên DataTable cần hiển thị lên lưới AutoGenerateColumns : T ự động lấy các cột nếu bằng true, ngược lại lấy đúng số cột đã khai báo.

Trang 27

Các đối tượng

Hoàng Hữu Việt

Đối tượng DataGridView

Sự kiện thường dùng

RowEnter : Xảy ra khi con trỏ đưa vào một dòng

e.RowIndex: Dòng hiện thời e.ColumnIndex: Cột hiện thời

Trang 28

Các đối tượng

Hoàng Hữu Việt

Đối tượng DataGridView

Hiển thị dữ liệu trong bảng tblKhoaDaoTao lên

lưới, khi chuyển con trỏ trên lưới dữ liệu hiển thị lên TextBox.

Trang 29

Các đối tượng

Hoàng Hữu Việt

Đối tượng DataGridView

private string conStr = "Data Source = (local);" +

"Initial Catalog = QLSinhVien;" +

"persist security info = true;" +

"User Id=sa; Password=sa; Connect Timeout =50";

private SqlDataAdapter myDataAdapter;

string SqlStr = "SELECT * FROM tblKhoaDaoTao";

myDataAdapter = new SqlDataAdapter(SqlStr, conStr);

myDataSet = new DataSet();

Trang 30

Các đối tượng

Hoàng Hữu Việt

Đối tượng DataGridView

private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)

Trang 31

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommand

Dùng để thực hiện câu lệnh SQL

Insert Update Delete

Trang 32

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommand

Khai báo biến

private string conStr =“Data Source = ;”;

private SqlConnection myConnection;

Trang 33

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommand

Thiết kế Form cho phép nhập, xoá bảng dữ liệu tblKhoaDaoTao

Trang 34

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommand

private string conStr = "Data Source = (local);" +

"Initial Catalog = QLSinhVien;" +

"persist security info = true;" +

"User Id=sa; Password=sa; Connect Timeout =50";

private SqlDataAdapter myDataAdapter;

private SqlCommand myCommand;

private SqlConnection myConnection;

Trang 35

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommand

private void Display()

{

string SqlStr = "SELECT * FROM tblKhoaDaoTao";

//Tao thong qua xau ket noi da mo

myDataAdapter = new SqlDataAdapter(SqlStr, myConnection);

myDataSet = new DataSet();

//Mo ket noi

myConnection = new SqlConnection(conStr);

myConnection.Open();

Display();

SetControls(false);

}

Trang 36

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommand

private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)

Trang 37

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommand

private void btnSave_Click(object sender, EventArgs e)

{

string sSql;

sSql = "Insert Into tblKhoaDaoTao (MaKhoa, TenKhoa)"+

"Values (N'"+ txtMaKhoa.Text + "',N'" + txtTenKhoa.Text + "')";

myCommand = new SqlCommand(sSql, myConnection);

sSql = "Delete From tblKhoaDaoTao " +

"Where MaKhoa = N'" + txtMaKhoa.Text + "'";

myCommand = new SqlCommand(sSql, myConnection);

myCommand.ExecuteNonQuery();

Display();

}

Trang 38

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommandBuilder

Tự động thực hiện Update, Insert, Delete

Update

Trang 39

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommandBuilder

Khai báo các biến

private string conStr = “Data Source = ;”;

private private

SqlConnection SqlDataAdapter

myConnection;

myDataAdapter;

private private private

DataSet DataTable string

myDataSet;

myTable;

sqlStr;

Trang 40

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommandBuilder

Tạo kết nối tới cơ sở dữ liệu

myConnection = new SqlConnection(conStr);

Trang 41

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommandBuilder

Trang 42

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommandBuilder

Note: pos là dòng cần sửa

Loại bỏ sửa đổi dòng

myTable.RejectChanges();

Trang 43

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommandBuilder

Thiết kế Form cho phép nhập, xoá bảng dữ liệu tblKhoaDaoTao

Trang 44

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommandBuilder

private string conStr = "Data Source = (local);" +

"Initial Catalog = QLSinhVien;" +

"persist security info = true;" +

"User Id=sa; Password=sa; Connect Timeout =50";

private SqlDataAdapter myDataAdapter;

private SqlCommandBuilder myCommandBuilder;

Trang 45

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommandBuilder

private void Display()

{

string SqlStr = "SELECT * FROM tblKhoaDaoTao";

//Tao thong qua xau ket noi da mo

myDataAdapter = new SqlDataAdapter(SqlStr, myConnection);

//Tao myCommandBuilder

myCommandBuilder = new SqlCommandBuilder(myDataAdapter);

myDataSet = new DataSet();

Trang 46

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommandBuilder

private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)

Trang 47

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommandBuilder

private void btnSave_Click(object sender, EventArgs e)

Trang 48

Các đối tượng

Hoàng Hữu Việt

Đối tượng SqlCommandBuilder

Bài tập: Thiết kế form

Trang 49

Các đối tượng

Hoàng Hữu Việt

Đối tượng ListBox và ComboBox

ListBoxes: Cho phép người dùng xem và chọn

các dòng dữ liệu từ danh sách

ComboBox: Sự kết hợp của TextBox và LixtBox

Trang 50

Các đối tượng

Hoàng Hữu Việt

Đối tượng ListBox và ComboBox

DataSource: Nguồn dữ liệu, là một DataTable DisplayMember: Cột hiển thị trong ListBox ValueMember: Cột giá trị trả về khi chọn ListBox SelectedIndex: Dòng hiện thời được chọn

SelectedValue: Giá trị được chọn trên ListBox

Trang 51

Các đối tượng

Hoàng Hữu Việt

Đối tượng ListBox và ComboBox

Ví dụ hiển thị dữ liệu trong tblKhoaDaoTao

Trang 52

Lớp truy nhập cơ sở dữ liệu

Hoàng Hữu Việt

Mọi form không phụ thuộc vào cơ sở dữ liệu

Chỉ kết nối dữ liệu một lần khi chạy ứng dụng Mỗi form sử dụng các đối tượng lớp

Lấy dữ liệu vào DataTable Cập nhật dữ liệu từ DataTabe vào cơ sở dữ liệu Thực hiện các câu lệnh SQL thao tác với dữ liệu

private static SqlConnection myConnection;

private SqlDataAdapter myDataAdapter;

public DataServices()

{

}

~DataServices()

Trang 53

Lớp truy nhập cơ sở dữ liệu

Hoàng Hữu Việt

Mã nguồn

public bool OpenDB(string myComputer,string myDatabase,string myUser,string myPassword)

{

string strConnection = "Data Source='" + myComputer + "';" +

"Initial Catalog='" + myDatabase + "';" +

"Persist Security Info=True;" +

"User ID='" + myUser + "';Password='" + myPassword + "';" +

Trang 54

Lớp truy nhập cơ sở dữ liệu

Hoàng Hữu Việt

} catch (SqlException) {

} catch (Exception) {

} myConnection = null;

}

}

}

Trang 55

Lớp truy nhập cơ sở dữ liệu

Hoàng Hữu Việt

Trang 56

Lớp truy nhập cơ sở dữ liệu

Hoàng Hữu Việt

Mã nguồn

public DataTable RunQuery(string QueryString, string TableName)

{

DataSet myDataSet = new DataSet();

myDataAdapter = new SqlDataAdapter();

try

{

myDataAdapter.SelectCommand = new SqlCommand(QueryString, myConnection);

SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myDataAdapter);

Trang 57

Lớp truy nhập cơ sở dữ liệu

Hoàng Hữu Việt

Trang 58

Hoàng Hữu Việt

Forward-only data access

“Lightweight” programming model

Less overhead than using OleDbDataAdapter

Instantiated & returned by

SqlCommand ExecuteReader

Ties up the SqlCommand until it is finished

reading

Trang 59

RecordsAffected : Number of affected records

Methods to retrieve data

By column type and/or index: GetValue;

GetString; etc.

Read(): Advances reader to next record NextResult(): Advanced to next result set in batch GetValues(): Gets the current row

Trang 60

SqlDataReader Sample

Hoàng Hữu Việt

Code pattern to add Items to checklistBox

//String for creating the SqlConnection “myConn” not shown

myConn.Open();

string sSql = "SELECT * FROM NGANH";

SqlDataReader myReader = myCmd.ExecuteReader();

Trang 61

Các đối tượng ADO.NET

Hoàng Hữu Việt

4.) Release Resources } catch ( Exception ){

Handle exception } finally {

try {

5.) Close connection } catch (Exception)

{ Handle exception } }

Trang 62

Hoàng Hữu Việt

ADO.NET is the evolution of ADO

It is a disconnected, Web-centric model

Flexible in its ability to work with data

Increases your ability to logically organize data

Extensive support for XML

Facilitates working with and sharing data

Interacts with a wide variety of data sources

Ngày đăng: 09/07/2014, 13:20

TỪ KHÓA LIÊN QUAN

w