Tìm kiếm trong Blog này

Thứ Ba, 24 tháng 4, 2012

Hướng Dẫn Kết Nối Cơ Sở Dữ Liệu Trên C-Sharp (C#) Bằng MS-Sql Server 2005 part 1

Trước tiên để kết nối cơ sở dữ liệu (CSDL) bạn cần có công cụ C# và MS-Sql 2005
hình 1
Sau khi cài đặt thành công C# và Sql Server ta cần xác định thông tin cần thiết để tiến hành kết nối CSDL
hình 2
Thông tin cần quan tâm ở đây là: 
- Server name: "EMCHINES-PC\SQLEXPRESS" or ".\SQLEXPRESS"
- Login: "sa" (default)
- Password: ở đây lấy ví dụ là "admin"
- Tên CSDL:  " EXECISE" (hình 3)

hình 3

Sau khi có đầy đủ thông tin ta bắt đầu lập trình
Tất cả các câu lệnh cần thiết để thiết lập kết nối đều nằm trong thư viện: "System.Data.SqlClient"
using System.Data.SqlClient;
public class Connection
    {
//Khai báo các biến cho kết nối:
        public static SqlConnection sqlConnection; //dùng để tạo kết nối
        public static SqlCommand sqlCommand; // dùng thực thi câu lệnh sql
        public static SqlDataAdapter sqlDataAdapter;
        public static SqlDataReader sqlDataReader;

//Khai báo chuỗi kết nối với thông tin đã được xác định trước đó
        public static String sqlConn = "Server= EMCHINES-PC\\SQLEXPRESS      
; Database=EXECISE ; uid = sa ; pwd = admin";
        
//Tạo hàm mở kết nối
        public static void OpenConnect()
        {
            try
            {
                sqlConnection = new SqlConnection(sqlConn);
                sqlConnection.Open(); //Mở kết nối
            }
            catch (Exception ex) //Bắt ngoại lệ nếu có
            {
                MessageBox.Show("Lỗi kết nối "+ex.Message);
            }
        }

        //Đóng kết nối
        public static void CloseConnect()
        {
            try
            {
                sqlConnection.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi đóng kết nối!!");
            }
        }

        //Thực thi câu lệnh sql và trả về một bảng dữ liệu từ Database
        public static DataSet FillDataSet(String sqlQuery)
        {
            DataSet dataSet = new DataSet();
            try
            {
                //OpenConnect();
                sqlDataAdapter = new SqlDataAdapter(sqlQuery, sqlConnection);
                sqlDataAdapter.Fill(dataSet);
                sqlDataAdapter.Dispose();
            }
            catch
            {
                MessageBox.Show("Lỗi thực thi!!");
            }
            finally
            {
                CloseConnect();                
            }
            return dataSet;
        }

        //Thực thi câu lệnh sql và trả về một phần dữ liệu của database ( chỉ được đọc 1 lần/ tăng tốc độ)
        public static SqlDataReader FillDataReader(String sqlQuery)
        {
            try
            {
                //OpenConnect();
                sqlCommand=new SqlCommand();
                sqlCommand.Connection = sqlConnection;
                sqlCommand.CommandText = sqlQuery;
                sqlDataReader = sqlCommand.ExecuteReader();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi thực thi!!!");
            }
            finally
            {
                //CloseConnect();
                sqlCommand.Dispose();
            }
            return sqlDataReader;
        }

        //Thực thi câu lệnh sql và không trả về kết quả nào thường dùng cho Update và Delete dữ liệu trong //bảng
        public static bool ExecuteNonReturn(String sqlQuery)
        {
            try
            {
                //OpenConnect();
                sqlCommand = new SqlCommand();
                sqlCommand.Connection = sqlConnection;
                sqlCommand.CommandText = sqlQuery;
                sqlCommand.ExecuteNonQuery();
                return true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi thực thi câu lệnh!!");
                return false;
            }
            finally
            {
                //CloseConnect();
                sqlCommand.Dispose();
            }
        }

        //Đóng kết nối DataReader
        public static void CloseDataReader()
        {
            try
            {
                sqlDataReader.Close();
            }
            catch (Exception ex)
            {
            }
        }
    }


Bây giờ ta sẽ đi vào 1 ví dụ cụ thể:

Ta có một CSDL với 1 bảng có sẳn ( có thể tự thêm dữ liệu vào để xem kết quả chính xác hơn)


//Kết thúc Part 1

2 nhận xét: