Thao tác SQL Server với C# [ADO.NET]
Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu về ADO.NET sử dụng cơ sở dữ liệu SQL Server. Ở đây các bạn sẽ hiểu được cách kết nối với CSDL SQL Server và các thao tác cơ bản với CSDL bằng ADO.NET.
Để có thể thực hiện được, các bạn cần cài đặt SQL Server trên máy tính của mình (cách cài đặt trên google). Hiện tại thì mình đang sử dụng công cụ SQL Server Management Studio (SSMS) để tương tác với SQL Server.
1. Mở SQL Server Management Studio Tool
Khi các bạn mở SSMS (SQL Server Management Studio), nó sẽ đưa bạn tới cửa sổ để kết nối với máy chủ. Tại đây, các bạn cần cung cấp tên máy chủ và các thông tin xác thực và nhấn nút Connect để kết nối như hình dưới đây.
Khi bạn đã kết nối thành công thì giao diện của SQL Server Management Studio sẽ như hình. Ở dây mình đang sử dụng SSMS với phiên bản 2012, các bạn có thể cài đặt phiên bản mới nhất để sử dụng hết các tính năng của nó.
Bài viết này được đăng tại [free tuts .net]
2. Tạo cơ sở dữ liệu trong SQL Server
Để tạo mới database bằng GUI trên SSMS, đầu tiên các bạn nhấp chuột phải vào Databases tại mục Object Explorer ở góc bên trái. Khi đó một cửa sổ menu hiện lên, các bạn chọn vào New Database như hình dưới đây để tạo mới một database.
Sau khi chọn New Database một cửa sổ mới sẽ mở ra. Tại đây, các bạn cần cung cấp tên database và nhấn vào nút OK. Mình đã đặt tên cho database là Students, các bạn có thể đặt tùy ý theo project để dễ quản lý.
Khi tạo xong thì database của chúng ta sẽ nằm ở bên trong Databases ở mục Object Explorer.
3. Thiết lập kết nối và tạo bảng
Khi chúng ta đã tạo xong database Students trong SSMS, bây giờ sẽ tạo một bảng mới có tên là Student bằng cách sử dụng ADO.NET và code C#.
Đầu tiên các bạn cần mở Visual studio 2019 (các bạn có thể sử dụng bất kỳ phiên bản nào của visual studio). Sau đó tạo một project .NET Console Application và đặt tên cho project ta sẽ được hình như dưới đây.
Bây giờ chúng ta sẽ đi tạo chuỗi kết nối tới SQL Server bằng file App.config, cụ thể như sau:
Bước 1: Nhấn đúp chuột vào file App.config ở mục Solution Explorer để mở file.
Bước 2: Thêm đoạn code tạo chuỗi kết nối vào file, sau đó lưu lại.
Bước 3: Thêm thư viện Configuration vào project bằng cách chuột phải vào References và chọn Add Reference.
Sau đó kéo xuống bên dưới và tích vào ô System.Configuration để thêm thư viện này vào project.
Sau khi thực hiện các bước trên, bây giờ chỉ cần viết code để gọi chuỗi kết nối từ file App.config và kết nối tới SQL Server.
using System; using System.Collections.Generic; using System.Configuration; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp { class Program { static void Main(string[] args) { //gọi hàm CreateTable để tạo mới Table new Program().CreateTable(); Console.ReadKey(); } public void CreateTable() { //sử dụng lớp SqlConnection để tạo chuỗi kết nối SqlConnection con = new SqlConnection(); //gọi chuỗi kết nối ở file App.config bằng thuộc tính ConfigurationManager trong lớp System.Configuration con.ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString; try { // viết câu lệnh query để thêm mới bảng với các thuộc tính name, email, join_date SqlCommand cm = new SqlCommand("create table student(id int not null, name varchar(100), email varchar(50), join_date date)", con); // mở chuỗi kết nối con.Open(); // sử dụng phương thức ExecuteNonQuery() để thực thi câu lệnh cm.ExecuteNonQuery(); // thông báo ra màn hình khi tạo thành công Console.WriteLine("Đã tạo mới bảng thành công"); } catch (Exception e) { Console.WriteLine("Có lỗi xảy ra !!!" + e); } // dóng chuỗi kết nối finally { con.Close(); } } } }
Kết quả:
Lúc này tại SSMS thì bảng student cũng được tạo trong database Students.
4. Thêm dữ liệu vào SQL Server bằng ADO.NET
Tương tư, ta cũng có thể thêm dữ liệu vào trong bảng vừa được tạo ở trên, bằng cách thêm đoạn code dưới đây:
using System; using System.Collections.Generic; using System.Configuration; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp { class Program { static void Main(string[] args) { //gọi hàm Insert để thêm mới dữ liệu vào Table new Program().Insert(); Console.ReadKey(); } public void Insert() { //sử dụng lớp SqlConnection để tạo chuỗi kết nối SqlConnection con = new SqlConnection(); //gọi chuỗi kết nối ở file App.config bằng thuộc tính ConnectionString con.ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString; try { // viết câu lệnh query để thêm dữ liệu vào bảng với các trường tương ứng SqlCommand cm = new SqlCommand("insert into student (id, name, email, join_date) values ('101', 'Freetuts.net', 'Freetuts@gmail.com', '7/27/2021')", con); // mở chuỗi kết nối con.Open(); // sử dụng phương thức ExecuteNonQuery() để thực thi câu lệnh cm.ExecuteNonQuery(); // thông báo ra màn hình khi thêm dữ liệu thành công Console.WriteLine("Them moi du lieu thanh cong !!!"); } catch (Exception e) { Console.WriteLine("Co loi xay ra !!!" + e); } // dóng chuỗi kết nối finally { con.Close(); } } } }
Kết quả:
5. 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, các bạn có thể tham khảo nhé.
using System; using System.Collections.Generic; using System.Configuration; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp { class Program { static void Main(string[] args) { //gọi hàm Retrieve để truy xuất dữ liệu new Program().Retrieve(); Console.ReadKey(); } public void Retrieve() { //sử dụng lớp SqlConnection để tạo chuỗi kết nối SqlConnection con = new SqlConnection(); //gọi chuỗi kết nối ở file App.config bằng thuộc tính ConnectionString con.ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString; try { // viết câu lệnh query truy xuất dữ liệu SqlCommand cm = new SqlCommand("Select * from student", con); // mở chuỗi kết nối con.Open(); // sử dụng phương thức ExecuteReader() để thực thi câu lệnh SqlDataReader sdr = cm.ExecuteReader(); // sử dụng vòng lặp while để lấy hết dữ liệu có trong bảng while (sdr.Read()) { // hiển thị dữ liệu ra màn hình Console.WriteLine(sdr["id"] + " " + sdr["name"] + " " + sdr["email"]); } } catch (Exception e) { Console.WriteLine("Co loi xay ra !!!" + e); } // dóng chuỗi kết nối finally { con.Close(); } } } }
Kết quả:
6. Xóa dữ liệu khỏi SQL Server bằng ADO.NET
Tương tự như các thao tác khác, sau khi kết nối tới SQL Server. Các bạn chỉ cần viết câu lệnh Query để thêm vào SQL Server và thực hiện nó mà thôi.
using System; using System.Collections.Generic; using System.Configuration; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp { class Program { static void Main(string[] args) { //gọi hàm Delete để truy xuất dữ liệu new Program().Delete(); Console.ReadKey(); } public void Delete() { //sử dụng lớp SqlConnection để tạo chuỗi kết nối SqlConnection con = new SqlConnection(); //gọi chuỗi kết nối ở file App.config bằng thuộc tính ConnectionString con.ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString; try { // viết câu lệnh query để xóa dữ liệu SqlCommand cm = new SqlCommand("delete from student where id = '101'", con); // mở chuỗi kết nối con.Open(); // sử dụng phương thức ExecuteNonQuery() để thực thi câu lệnh cm.ExecuteNonQuery(); // hiển thị ra màn hỉnh thông báo Console.WriteLine("Xoa thanh cong du lieu !!!"); } catch (Exception e) { Console.WriteLine("Co loi xay ra !!!" + e); } // dóng chuỗi kết nối finally { con.Close(); } } } }
Kết quả:
Như vậy là chúng ta đã tìm hiểu sơ lược về ADO.NET sử dụng cơ sở dữ liệu SQL Server. Đây là những kiến thức cơ bản vì vậy các bạn cần nắm rõ nó trước khi đi vào các bài sau nhé. Ở bài tiếp theo chúng ta sẽ tìm hiểu về SqlConnection trong ADO.NET, cũng như các thuộc tính và chức năng của nó.