1. Trang chủ
  2. » Giáo Dục - Đào Tạo

tiểu luận môn học lập TRÌNH HƯỚNG đối TƯỢNG đề tài tìm HIỂU về ADO NET

31 30 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

Tiêu đề Tìm Hiểu Về ADO.NET
Tác giả Lê Nguyễn Ngọc Hiệp
Người hướng dẫn Th.S Nguyễn Văn Thọ
Trường học Trường Đại Học Ngân Hàng Thành Phố Hồ Chí Minh
Chuyên ngành Lập Trình Hướng Đối Tượng
Thể loại tiểu luận
Năm xuất bản 2021
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 31
Dung lượng 1,89 MB

Cấu trúc

  • I. Giới thiệu về ADO.NET(Active X DataObject .NET) (4)
    • 1. Khái niệm (4)
    • 2. Đặc điểm (4)
    • 3. Các thư viện truy xuất CSDL trong ADO.NET (6)
    • 4. Những loại ứng dụng nào sử dụng ADO.NET (7)
  • II. Kiến trúc ADO.NET (7)
    • 1. Data Provider (8)
    • 2. DataSet (15)
  • III. Kết nối ADO.NET với các cơ sở dữ liệu (23)
    • 1. ADO.NET kết nối với SQL Server Database (23)
    • 2. ADO.NET kết nối với Oracle Database (23)
  • IV. Thao tác SQL Server với C# [ADO.NET] (24)
    • 1. Truy xuất dữ liệu từ SQL Server bằng ADO.NET (24)
    • 2. Thêm dữ liệu vào SQL Server bằng ADO.NET (25)
    • 3. Xóa dữ liệu khỏi SQL Server bằng ADO.NET (26)
  • V. Data Source Configuration Wizard (27)
  • VII. Tổng kết (30)

Nội dung

Giới thiệu về ADO.NET(Active X DataObject NET)

Khái niệm

ADO.NET là một tập hợp các thư viện lập trình hướng đối tượng (OOP) cho phép người dùng tương tác hiệu quả với các nguồn dữ liệu, thường là cơ sở dữ liệu (database).

SQL Server, Oracle, MySQL, nhưng nó cũng có thể là file text, exel hoặc XML

ADO.NET là một bộ lớp giúp kết nối, truy xuất, chèn và xóa dữ liệu từ nguồn dữ liệu Nó chủ yếu sử dụng thư viện System.Data.dll.

Đặc điểm

– ADO.NET là một phần của NET Framework

– Thư viện lớp có chức năng thao tác dữ liệu trong ngôn ngữ MS.NET

ADO.NET là một công nghệ "Disconnected" cho phép truy xuất cấu trúc dữ liệu phức tạp từ cơ sở dữ liệu, sau đó ngắt kết nối để thực hiện các thao tác xử lý Trong khi đó, ADO yêu cầu duy trì kết nối liên tục trong suốt quá trình làm việc.

 Môi trường “connected” : Mỗi user có một kết nối cố định tới data source là những đối tượng giao tiếp trực tiếp với CSDL

+ Môi trường được bảo vệ tốt

+ Kiểm soát được sự đồng bộ

+ Dữ liệu luôn được mới

+ Phải có một kết nối mạng cố định

Một tập con của dữ liệu trung tâm được sao chép và bổ sung độc lập, sau đó sẽ được hợp nhất trở lại vào dữ liệu trung tâm Điều này cho phép người dùng làm việc với dữ liệu ở chế độ offline khi đã ngắt kết nối với cơ sở dữ liệu.

+ Có thể làm việc bất cứ lúc nào, cũng như có thể kết nối bất kỳ vào Data Source + Cho phép user khác có thể kết nối

+ Nâng cao hiệu suất thực hiện của ứng dụng

+ Dữ liệu không được cập nhật một cách nhanh nhất

+ Sự tranh chấp có thể xuất hiện và phải giải quyết

– Kế thừa các ưu điểm của ADO kết hợp với ý tưởng thiết kế hoàn toàn mới

+ Dựa vào XML: Chuẩn giao tiếp dữ liệu phổ biến nhất trên môi trường Internet hiện nay

+ Hướng đối tượng: Đặc trưng của thư viện NET Framework Đặc điểm ADO ADO.NET

Data xử lý được Recordset : tương đương 1 bảng dữ liệu trong database Dataset : tương đương 1 database

6 đưa vào bộ nhớ dưới dạng

Duyệt dữ liệu Recordset chỉ cho phép duyệt tuần tự, từng dòng một

Dataset : duyệt “tự do, ngẫu nhiên”, truy cập thẳng tới bảng, dòng, cột mong muốn

Dữ liệu ngắt kết nối

Recordset thiên về hướng kết nối, nên việc hỗ trợ ngắt kết nối không mạnh

Dataset hỗ trợ hoàn toàn ngắt kết nối

Trao đổi dữ liệu qua Internet

Khả năng trao đổi dữ liệu ADO qua Internet thường có nhiều hạn chế Do dùng chuẩn COM

ADO.NET hỗ trợ việc trao đổi dữ liệu qua Internet một cách dễ dàng nhờ vào việc tuân thủ chuẩn XML, chuẩn dữ liệu chính được sử dụng rộng rãi cho các giao dịch trực tuyến.

Các thư viện truy xuất CSDL trong ADO.NET

Như bạn có thể biết rằng, có rất nhiều loại database hiện nay như Microsoft SQL

Server, Microsoft Access, Oracle, Borland Interbase, và IBM DB2,… và các thư viện truy xuất cụ thể

+ System.Data.OleDb: Access, SQL Server, Oracle

+ System.Data.SqlClient: SQL Server

+ Về mặt giao tiếp lập trình ứng dụng, cả 3 thư viện trên không khác biệt nhau nhiều

+ Dùng thư viện System.Data.SqlClient sẽ truy xuất SQL Server nhanh hơn

+ Dùng thư viện System.Data.OracleClient sẽ truy xuất Oracle nhanh hơn

Những loại ứng dụng nào sử dụng ADO.NET

ADO.NET là công nghệ lý tưởng cho việc phát triển mọi loại ứng dụng NET Dưới đây là một số ứng dụng NET mà bạn có thể áp dụng ADO.NET để tương tác hiệu quả với các nguồn dữ liệu.

 ASP.NET Web Form Applications

 ASP.NET Web API Applications

Kiến trúc ADO.NET

Data Provider

Các nhà cung cấp dữ liệu trong NET Framework hỗ trợ mở kết nối tới các cơ sở dữ liệu, nơi mà SQL là ngôn ngữ chính được hiểu, không phải C# Để ứng dụng NET truy xuất dữ liệu hoặc thực hiện các thao tác như chèn, cập nhật, và xóa trên cơ sở dữ liệu, việc sử dụng các đối tượng này là cần thiết.

 Chuẩn bị câu lệnh SQL

 Lấy kết quả và hiển thị chúng trong ứng dụng

Phần kết nối: sử dụng khi kết nối CSDL và thao tác dữ liệu, phải thực hiện kết nối khi thao tác

 Connection: quản lý việc đóng mở DataBase

+ ConnectionString: loại Data Source cần kết nối

+ Open(): thiết lập kết nối đến Data Source

+ Close(): ngắt kết nối đến Data Source

– Sau đây là một số phương thức quan trọng của SqlConnection:

+ BeginTransaction: Nó được sử dụng để bắt đầu một transaction với cơ sở dữ liệu và trả về một đối tượng đại diện cho transaction mới

+ ChangeDatabase(string database): Nó được sử dụng để thay đổi cơ sở dữ liệu hiện tại cho một SqlConnection đang mở

+ ChangePassword(string connectionString, string newPassword): Thay đổi mật khẩu SQL Server cho người dùng được chỉ định trong chuỗi kết nối thành mật khẩu mới được cung cấp

Phương thức Close() được sử dụng để đóng kết nối với cơ sở dữ liệu, là cách tối ưu nhất để kết thúc bất kỳ kết nối nào đang mở.

+ CreateCommand(): Nó tạo và trả về một đối tượng

System.Data.SqlClient.SqlCommand được liên kết với

+ GetSchema(): Nó trả về thong tin lược đồ cho nguồn dữ liệu của

+ Open(): Phương thức này được sử dụng để mở một kết nối cơ sở dữ liệu với cài đặt thuộc tính được chỉ định bởi

System.Data.SqlClient.SqlConnection.ConnectionString

SqlConnection cnn = new SqlConnection(); cnn.ConnectionString = “server= \\SQLEXPRESS; databaseaBase; Trusted_Connection=true”; cnn.Open();

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

Tên server hoặc địa chỉ IP của máy mà bạn muốn kết nối được gọi là servername Nếu máy chủ đó là máy của bạn, bạn có thể sử dụng "server=." để thay thế.

+ databasename: Là tên của database mà bạn chọn để kết nối trong server đã khai báo trước đó

+ integrated security = true: Ở đây sử dụng quyền truy cập của window để truy cập vào SQL Server

OleDbConnection cnn = new OleDbSqlConnection(); cnn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0; Data Source =Sinhvien.mdb”; cnn.Open();

//xử lý trong quá trình kết nối … cnn.Close();

 Command: lệnh truy vấn, tương tác dữ liệu khi đang lập kết nối

ADO.NET's SqlCommand in C# is utilized to store and execute SQL commands against a SQL Server database The SqlCommand class inherits from the DbCommand class and implements the ICloneable interface.

– SqlCommand trong C# cung cấp các Thuộc tính sau:

+ 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)

+ tác động (Insert, Update, Delete…)

– SqlCommand trong C# cung cấp các phương thức sau

+ BeginExecuteNonQuery(): Phương thức này bắt đầu thực thi không đồng bộ câu lệnh Transact-SQL hoặc thủ tục được lưu trữ mô tả bởi

System.Data.SqlClient.SqlCommand này

+ Cancel(): Phương thức này được dùng để hủy bỏ việc thực thi

+ Clone(): Phương thức này tạo một đối tượng

System.Data.SqlClient.SqlCommand mới, là bản sao của bản hiện tại

+ CreateParameter(): Phương thức này tạo mới một đối tượng

+ ExecuteReader(): Phương thức này gửi

System.Data.SqlClient.SqlCommand.CommandText tới

System.Data.SqlClient.SqlCommand.Connection và xây dựng một

+ ExecuteScalar(): Phương thức này thực hiện truy vấn và trả về cột đầu tiên của hàng đầu tiên trong tập kết quả đưuọc trả về bởi truy vấn

+ ExecuteNonQuery(): Phương thức này thực thi một câu lệnh Transact-SQL và trả về số hàng bị ảnh hưởng

+ Prepare(): Phương thức này tạo một phiên bản chuẩn bị của lệnh trên một phiên bản của SQL Server

+ ResetCommandTimeOut(): Phương thức này đặt lại thuộc tính

CommandTimeOut về giá trị mặc định của nó

SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data source=.\\SQLEXPRESS;"+

"Initial Catalog=StudentDB; Integrated security=yes;

SqlCommand cmd = new SqlCommand(); cmd.CommandText = // các lệnh xử lý cmd.Connection = conn; conn.Open(); cmd.ExecuteNonQuery(); conn.Close();

In SQL programming, parameterizing commands enhances reusability and security For instance, the command `cmd.CommandText = "Insert into Sinhvien values(@MS,@HT,@NS,@GT,@DC,@DT)";` allows for multiple executions with different values Parameters such as `@MS`, `@HT`, `@NS`, `@GT`, `@DC`, and `@DT` are defined with specific SQL data types, including `SqlDbType.Int` for `@MS` and `SqlDbType.NVarChar` for `@HT` By setting `cmd.Parameters["@MS"].Value = 999`, the command can be executed efficiently while preventing SQL injection attacks.

In this code snippet, parameters are set for a SQL command, including the name "Nguyen Ha Giang," birth date December 4, 1978, gender as 1, address "Tan Binh," and phone number 5120791 The connection to the database is opened, and the command is executed, returning the count of affected rows before closing the connection.

 DataReader: đọc dữ liệu, chỉ xử lý 1 dòng dữ liệu tại một thời điểm

SqlDataReader trong C# là công cụ hiệu quả để đọc dữ liệu từ cơ sở dữ liệu SQL Server, hoạt động theo cơ chế forward-only stream Điều này có nghĩa là nó chỉ có thể đọc từng bản ghi theo thứ tự mà không thể quay lại để xem lại các bản ghi trước đó SqlDataReader yêu cầu một kết nối mở với nguồn dữ liệu trong suốt quá trình đọc, đồng thời nó cũng ở chế độ read-only, không cho phép thay đổi dữ liệu Do đó, việc đóng và mở kết nối cần được thực hiện một cách rõ ràng.

– SqlDataReader cung cấp các thuộc tính sau

+ Connection: Nhận System.Data.SqlClient.SqlConnection được liên kết với

+ Depth: Nhận một giá trị cho biết depth (độ sâu) của hàng hiện tại

+ FieldCount: Lấy số cột trong hàng hiện tại

+ HasRows: Nhận một giá trị cho biết liệu

System.Data.SqlClient.SqlDataReader có chứa một hay nhiều hay không + IsClosed: Truy xuất một giá trị Boolean cho biết liệu phiên bản

The SqlDataReader in System.Data.SqlClient indicates whether it has been closed Additionally, the RecordsAffected property retrieves the number of rows that have been altered, inserted, or deleted as a result of executing a T-SQL statement.

+ VisibleFieldCount: Lấy số lượng trường trong

System.Data.SqlClient.SqlDataReader không bị ẩn

+ Item[String]:Nhận giá trị của cột được chỉ định ở định dạng gốc của nó với tên cột

+ Item[Int32]: Nhận giá trị của cột được chỉ định ở định dạng gốc của nó theo thứ tự cột

– SqlDataReader cung cấp các phương thức sau:

+ Close(): Được sử dụng để đóng đối tượng SqlDataReader

+ GetBoolean (int i): Nhận giá trị của cột được chỉ định dưới dạng Boolean

+ GetByte(int i): Nhận giá trị của cột được chỉ định dưới dạng byte

+ GetChar(int i): Nhận giá trị của cột được chỉ định dưới dạng một ký tự duy nhất

+ GetDateTime(int i): Nhận giá trị của cột được chỉ định dưới dạng đối tượng

+ GetDecimal(int i): Nhận giá trị của cột được chỉ định dưới dạng đối tượng

+ GetDouble(int i): Nhận giá trị của cột được chỉ định dưới dạng số dấu phẩy động, có độ chính xác double

+ GetFloat(int i): Nhận giá trị của cột được chỉ định dưới dạng số dấu phẩy động có độ chính xác single

+ GetName(int i): Lấy tên của cột được chỉ định

+ GetSchemaTable(): Trả về một System.Data.Table mô tả metadate column của System.Data.SqlClient.SqlDataReader

+ GetValue(int i): Nhận giá trị của cột được chỉ định ở định dạng gốc của nó

+ NextResult(): Nâng cao trình đọc dữ liệu đến kết quả tiếp theo khi đọc kết quả của các câu lệnh T-SQL

+ Read(): Được sử dụng để đọc các bản ghi, trả về true nếu có nhiều hơn một hàng và ngược lại là false

SqlCommand cmd = new SqlCommand("Select *

SqlDataReader reader; conn.Open(); reader = cmd.ExecuteReader(); while (reader.Read()) listBox1.Items.Add(reader["Hoten"]); reader.Close(); conn.Close();

 DataAdapter: cầu nối giữa DB và DataSet

SqlDataAdapter trong C# là cầu nối giữa DataSet và nguồn dữ liệu SQL Server, giúp truy xuất và quản lý dữ liệu hiệu quả Lớp này đại diện cho tập hợp các câu lệnh SQL cùng với kết nối cơ sở dữ liệu, cho phép người dùng điền vào DataSet và cập nhật nguồn dữ liệu một cách dễ dàng.

– SqlDataAdapter cung cấp các phương thức sau

+ CloneInternals(): Được sử dụng để tạo một bản sao của bản DataAdapter hiện tại

+ Dispose(Boolean): Được sửu dụng để giải phóng các tài nguyên không được quản lý được sử dụng bởi DataAdapter

+ Fill(Data Set): Được sử dụng để thêm các hàng trong DataSet sao cho khớp với các hàng trong nguồn dữ liệu

+ FillSchema(DataSet, SchemaType, String, IDataReader): Được sử dụng để thêm một DataTable vào DataSet được chỉ định

+ GetFillParameters(): Được sử dụng để lất các tham số do người dùng thiết lập khi thực thi câu lệnh SQL Select

+ ResetFillLoadOption(): Được sử dụng để đặt lại FillLoadOption về trạng thái mặc định của nó

+ ShouldSerializeFillLoadOption(): Xác định xem thuộc tính FillLoadOption có nên được duy trì hay không

+ ShouldSerializeTableMappings(): Xác định liệu một hoặc nhiều đối tượng

DataTableMapping có tồn tại hay không

+ Update(DataSet): Được sử dụng để gọi các câu lệnh Insert, Update hoặc Delete tương

Ví dụ: string strConn="Server=.\\SQLEXPRESS; Database=StudentDB; Trusted_connection=true";

SqlDataAdapter("Select * From Sinhvien", strConn);

DataSet ds = new DataSet(); adapter.Fill(ds);

DataSet

DataSet là một tập hợp con của cơ sở dữ liệu trong bộ nhớ, bao gồm các bảng dữ liệu chứa dữ liệu quan hệ ở định dạng bảng Nó không phụ thuộc vào bất kỳ nhà cung cấp dữ liệu nào và cho phép kết nối với cơ sở dữ liệu để thực thi lệnh và truy xuất dữ liệu vào ứng dụng NET Dữ liệu được lưu trữ trong DataSet có thể hoạt động độc lập với cơ sở dữ liệu, giúp truy cập dữ liệu từ bất kỳ nguồn nào DataSet chứa một hoặc nhiều đối tượng trong DataTable.

DataSet cùng với các lớp như DataRow, DataTable và DataView được sử dụng để lưu trữ dữ liệu từ cơ sở dữ liệu sau khi thực hiện các câu lệnh của NET Framework data providers Dữ liệu trong DataSet thường được lưu trữ trong RAM, tạo thành một cơ sở dữ liệu được lưu trữ trong bộ nhớ (in-memory database).

DataSet có các thành phần con như: DataTable, DataRow, DataColumn,

Các đối tượng nhóm như DataTableCollection, DataRowCollection và DataColumnCollection hoạt động với cơ chế không kết nối thông qua DataAdapter, cho phép hỗ trợ đầy đủ các đặc tính XML và tương tác với mọi mô hình lưu trữ hiện tại.

 Flat file database: plain text, mixed text, binary text

 Hierarchical: data is organized into a tree-like structure

DataTableCollection Tables Nhận tập hợp các bảng có trong

Nhận tập hợp các quan hệ liên kết các bảng và cho phép điều hướng từ bảng cha sang bảng con

DataColumnCollection Columns Nhận tập hợp các cột thuộc bảng này DataRowCollection Rows Nhận tập hợp các hàng thuộc bảng này

ConstraintCollection Constraints Nhận tập hợp các ràng buộc được duy trì bởi bảng này

– Các thuộc tính của DataSet trong ADO.NET

CaseSensitive là thuộc tính dùng để xác định xem các so sánh chuỗi trong đối tượng System.Data.DataTable có phân biệt chữ hoa và chữ thường hay không Nếu thuộc tính này được đặt là true, các so sánh sẽ phân biệt chữ hoa và chữ thường; nếu không, giá trị mặc định là false sẽ được áp dụng.

DefaultViewManager được sử dụng để xem chế độ tùy chỉnh dữ liệu trong System.Data.Set, cho phép lọc, tìm kiếm và điều hướng thông qua System.Data.DataViewManager tùy chỉnh.

+ DataSetName: Được sử dụng để lấy hoặc đặt trên của System.Data.DataSet hiện tại

EnforceConstraints là một thuộc tính quan trọng, cho phép người dùng xác định và điều chỉnh việc tuân thủ các quy tắc ràng buộc trong quá trình thực hiện các thao tác cập nhật Việc sử dụng EnforceConstraints giúp đảm bảo rằng tất cả các quy tắc ràng buộc được thực hiện đúng cách, từ đó duy trì tính toàn vẹn của dữ liệu trong hệ thống.

+ HasErrors: Được sử dụng để nhận một giá trị cho biết liệu có lỗi trong bất kì đối tượng DataTable nào trong DataSet này hay không

IsInitialized là thuộc tính được sử dụng để kiểm tra xem DataSet đã được khởi tạo hay chưa Nó trả về giá trị true nếu thành phần đã được khởi tạo và false nếu ngược lại.

+ Prefix: Được sử dụng để lấy hoặc đặt một tiền tố XML làm bí danh cho namespace System.Data.DataSet

+ Locale: Được sử dụng để lấy hoặc đặt thông tin ngôn ngữ cho việc so sánh các chuỗi trong bảng

+ Namespace: Được sử dụng để lấy hoặc đặt tên namespace của

+ Site: Được sử dụng dể lấy hoặc thiết lập một System.ComponentModel.ISite cho System.Data.DataSet

+ Relations: Được sử dụng để lấy tập hợp các quan hệ liên kết các bảng và cho phép điều hướng từ bảng mẹ sang bảng con

+ Tables: Được sử dụng để lấy tập hợp các bảng có trong System.Data.DataSet

– Các phương thức của DataSet trong ADO.NET

Phương thức BeginInit() khởi tạo System.Data.DataSet cho một biểu mẫu hoặc một thành phần khác, và quá trình này diễn ra ngay khi chương trình bắt đầu chạy.

+ Clear(): Xóa DataSet của bất kỳ dữ liệu nào, bằng cách xóa tất cả các hàng trong tất cả các bảng

Clone() là phương thức dùng để sao chép cấu trúc của DataSet, bao gồm tất cả các Schema, quan hệ và ràng buộc của DataTable, nhưng không sao chép bất kỳ dữ liệu nào.

+ Copy(): Sao chéo cả cấu trúc và dữ liệu của DataSet được chọn

+ CreateDataReader(): Trả về một DataTableReader với một tập kết quả cho mỗi DataTable, theo trình tự giống như các bảng xuất hiện trong

+ CreateDataReader(params DataTable[] dataTables): Trả về một

System.Data.DataTableReader với một tập kết quả cho mỗi

+ EndInit(): Nó kết thúc việc khởi tạo DataSet, được sử dụng trên một biễu mẫu hoặc được sử dụng bởi một component khác

+ GetXml(): Trả về biểu diễn XML của dữ liệu được lưu trữ trong DataSet

+ GetXmlSchema(): Trả về Schema XML cho biểu diễn XML của dữ liệu được lưu trữ trong DataSet

 Nạp dữ liệu vào DataSet từ database:

Phương thức sau sẽ kết nối đến database SQL Server, sau đó nạp hai table User và Group vào DataSet private static DataSet LoadData()

"Server=;Database=YinYangDB;Trusted_Connection=true"); conn.Open(); var cmd = "Select * from Users"; var dataAdapter = new SqlDataAdapter(cmd, conn); var dataSet = new DataSet(); dataAdapter.Fill(dataSet, "User");

19 dataAdapter.SelectCommand.CommandText = "Select * from Groups"; dataAdapter.Fill(dataSet, "Group"); conn.Close(); return dataSet;

Phương thức Fill(DataSet) của DataAdapter tự động sử dụng tên bảng từ CommandText để đặt tên cho DataTable Tuy nhiên, để đảm bảo tên bảng chính xác trong trường hợp có thay đổi, tôi sử dụng phương thức overload Fill(DataSet, string) để tùy chỉnh lại tên cho các bảng.

Instead of using Fill() to populate a DataSet, you can use Fill(DataTable) to create a new DataTable, which can then be added to the DataSet For example, you can initialize a new DataTable with the name "Group," fill it with data using the data adapter, and subsequently add it to the DataSet.

Khi đặt tên cho bảng trong SQL, cần chú ý tránh trùng với các từ khóa như "User " bằng cách sử dụng quy tắc đặt tên như thêm tiền tố hoặc sử dụng danh từ số nhiều Ngoài việc nạp dữ liệu từ datatable, bạn cũng có thể tạo dữ liệu động cho DataTable thông qua các collection Columns và Rows.

 Tạo dữ liệu động cho DataTable

Kiểu dữ liệu DataColumn cung cấp đầy đủ các thuộc tính cần thiết để xây dựng mô hình dữ liệu hoàn chỉnh cho DataTable Bạn có thể tạo một cột ID với chỉ số tự động tăng bắt đầu từ 1, không cho phép giá trị null và đảm bảo tính duy nhất.

DataColumn col = new DataColumn("ID", typeof(int)); col.AllowDBNull = false; col.AutoIncrement = true; col.AutoIncrementSeed = 1; col.Unique = true;

Để tạo một DataTable, cần thiết phải có ít nhất hai thông tin cho mỗi DataColumn, đó là tên và kiểu dữ liệu Việc thêm các DataColumn vào một DataTable rỗng là một quá trình đơn giản và dễ thực hiện.

Ví dụ: Tạo một DataTable với tên Persons với ba column là ID, Name và Birthday cùng với kiểu dữ liệu tương ứng là int, string và DateTime:

DataTable table = new DataTable("Persons");

In this code snippet, a new DataColumn named "ID" is created with an integer data type, set to disallow null values and configured for auto-incrementation starting from 1, ensuring uniqueness Additionally, two more columns are added to the table: "Name," which is of string type, and "Birthday," designated for DateTime values.

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

ADO.NET kết nối với SQL Server Database

Trong phần này mình có một đoạn code mẫu để kết nối với cơ sở dữ liệu SQL Server và truy xuất dữ liệu như sau:

SqlConnection connection = new SqlConnection("data source=.; database=TestDB; integrated security=true");

SqlCommand command = new SqlCommand("Select * from

SqlDataReader myReader = command.ExecuteReader(); while(myReader.Read())

Console.WriteLine("\t{0}/t{1}", myReader.GetInt32(0), myReader.GetString(1));

*Lưu ý: Để sử dụng được các lớp này các bạn cần khai báo thư viện

System.Data.SqlClient Đây là một thư viện được sử dụng cho cơ sở dữ liệu SQL

ADO.NET kết nối với Oracle Database

Tương tự như phần trên, ở đây mình có một đoạn code được sử dụng để kết nối với cơ sở dữ liệu Oracle:

OracleConnection connection = new OracleConnection("data source=.;database=TestDB; integrated security=true");

OracleCommand command = new OracleCommand("Select * from Customers", connection); connection.Open();

Console.WriteLine("\t{0}\t{1}", myReader.GetInt32(0), myReader.GetString(1));

To communicate with OLEDB data sources such as Excel and Access, you need to utilize the OleDbConnection, OleDbCommand, and OleDbDataReader classes Therefore, it is essential to include the System.Data.OleDb library to access these classes effectively.

Thao tác SQL Server với C# [ADO.NET]

Truy xuất dữ liệu từ SQL Server bằng ADO.NET

Dưới đây là đoạn code mình đã viết dùng để truy xuất dữ liệu từ SQL Server bằng

ADO.NET static void Main(string[] args)

SqlConnection con = new SqlConnection(); con.ConnectionString =

ConfigurationManager.ConnectionStrings["conn"].ConnectionString; try

SqlCommand cm = new SqlCommand("Select * from student", con); con.Open();

SqlDataReader sdr = cm.ExecuteReader(); while (sdr.Read())

Console.WriteLine(sdr["id"] + " " + sdr["name"] + " " + sdr["email"]);

Console.WriteLine("Co loi xay ra !!!" + e);

Thêm dữ liệu vào SQL Server bằng ADO.NET

static void Main(string[] args)

SqlConnection con = new SqlConnection(); con.ConnectionString =

ConfigurationManager.ConnectionStrings["conn"].ConnectionString; try

SqlCommand cm = new SqlCommand("insert into student (id, name, email, join_date) values ('101', 'Freetuts.net',

Console.WriteLine("Them moi du lieu thanh cong!");

Console.WriteLine("Co loi xay ra!" + e);

Xóa dữ liệu khỏi SQL Server bằng ADO.NET

static void Main(string[] args)

SqlConnection con = new SqlConnection(); con.ConnectionString =

ConfigurationManager.ConnectionStrings["conn"].ConnectionString; try

SqlCommand cm = new SqlCommand("delete from student where id = '101'", con); con.Open(); cm.ExecuteNonQuery();

Console.WriteLine("Xoa thanh cong du lieu !!!");

Console.WriteLine("Co loi xay ra !!!" + e);

Data Source Configuration Wizard

Trong VS.NET 2005 có chức năng Data Source Configuration Wizard

– Nhanh chóng thiết lập Data Source cho project

– Xây dựng form hiển thị và thao tác dữ liệu

– Thông qua thao tác kéo thả từ Data Source

– Tạo một ứng dụng Windows Application

Trong menu Data | Add New Data Source

Hoàn tất khai báo Data Source Lưu chuỗi kết nối trong file cấu hình

Chọn bảng dữ liệu Kéo thả binding control vào Form

Trong cửa sổ Data Source/Chọn bảng cần sử dụng/ Kích chọn vào dấu mũi tên xuống sau tên bảng

Thiết lập view là DataGridView hay Details

Kéo Table thả vào Form

Tự động tạo các binding control cho table

Bổ sung DataGridView cho Form

Thay đổi Table sang DataGrid Kéo Table trong Data Source thả vào Form

Tổng kết

ADO.NET là một kĩ thuật NET để thao tác với nguồn dữ liệu Bạn có một vài Data

Provider cho phép bạn kết nối và giao tiếp với nhiều nguồn dữ liệu khác nhau, dựa trên giao thức hoặc loại cơ sở dữ liệu mà chúng sử dụng Bạn không cần phải lo lắng về các chi tiết kỹ thuật này, vì mọi thứ sẽ được xử lý tự động với mỗi Data.

Provider được sử dụng cho phép bạn thao tác với các đối tượng tương tự nhau để quản lý dữ liệu Đối tượng SqlConnection giúp bạn quản lý kết nối đến nguồn dữ liệu một cách hiệu quả.

SqlCommand allows you to send commands to the database For fast, forward-only data reading, use SqlDataReader If you need to work with disconnected data, utilize a DataSet to implement reading and writing to the data source.

Trong bối cảnh kiến thức và kỹ năng còn hạn chế, bài tiểu luận của em không tránh khỏi những thiếu sót Em rất mong thầy có thể góp ý để giúp em hoàn thiện đề tài này hơn nữa Em xin chân thành cảm ơn thầy!

Ngày đăng: 16/01/2022, 22:21

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w