[Lập trình Windows] Kết nối cơ sở dữ liệu - Lớp kết nối.

Bài trước: Mô hình 3 lớp ứng dụng vào giải bài toán cộng hai số nguyên.
Mục tiêu: Tạo ra lớp kết nối cơ sở dữ liệu, dùng để kết nối cơ sở dữ liệu.
tinhoccoban.net - Mô hình 3 tầng trong lập trình
Mô hình 3 tầng trong lập trình

Bước 1. Tạo project có cấu trúc như sau:

tinhoccoban.net - Cấu trúc Project mô hình 3 tầng
Cấu trúc Project mô hình 3 tầng

Bước 2. Xây dựng giao diện lập trình và lớp kết nối như sau:


using System.Data.SqlClient;
namespace Mohinh3Tang.DAL
{
    interface IKetNoi
    {
        /// <summary>
        /// Tên máy tính chứa hệ quản trị SQL Server.
        /// </summary>
        string TenMayChu { get; set; }
        /// <summary>
        /// Tên cơ sở dữ liệu cần kết nối
        /// </summary>
        string TenCSDL { get; set; }
        /// <summary>
        /// Tên login dùng để đăng nhập
        /// </summary>
        string TenNguoiDung { get; set; }
        /// <summary>
        /// Mật khẩu đăng nhập
        /// </summary>
        string MatKhau {get;set;}
        /// <summary>
        /// Tạo chuỗi kết nối
        /// </summary>
        /// <param name="tenmc">Tên máy chủ</param>
        /// <param name="tencsdl">Tên cơ sở dữ liệu</param>
        /// <param name="tennguoidung">Tên login</param>
        /// <param name="matkhau">Mật khẩu</param>
        /// <returns>Trả về chuỗi kết nối đến cơ sở dữ liệu</returns>
        string GetConnectionString(string tenmc, string tencsdl, string tennguoidung, string matkhau);
        /// <summary>
        /// Tạo chuỗi kết nối
        /// </summary>
        /// <returns>Trả về chuỗi kết nối đến cơ sở dữ liệu</returns>
        string GetConnectionString();
    }
    interface IMyConnection
    {
        /// <summary>
        /// Thông tin kết nối
        /// </summary>
        clsKetNoi InforConnect { get; set; }
        /// <summary>
        /// Biến kết nối SQL
        /// </summary>
        /// <returns>Trả về biến kết nối</returns>
        SqlConnection GetConnection();
        /// <summary>
        /// Biến kết nối
        /// </summary>
        /// <param name="strConnectionString">Chuỗi kết nối cơ sở dữ liệu.</param>
        /// <returns>Trả lại biến kết nối.</returns>
        SqlConnection GetConnection(string strConnectionString);
    }
}

Thực thi các giao diện lập trình trên như sau:

using System.Data.SqlClient;
namespace Mohinh3Tang.DAL
{
    class clsKetNoi:IKetNoi
    {
        string strChuoiKetNoiCoSoDuLieu;
        string strtenmaychu, strtencsdl, strtennguoidung, strmatkhau;
        public string TenMayChu
        { get { return strtenmaychu; } set { strtenmaychu = value; } }
        public string TenCSDL
        { get { return strtencsdl; } set { strtencsdl = value; } }
        public string TenNguoiDung
        { get { return strtennguoidung; } set { strtennguoidung = value; } }
        public string MatKhau { get { return strmatkhau; } set { strmatkhau = value; } }
        public string GetConnectionString(string tenmc, string tencsdl, string tennguoidung, string matkhau)
        {
            strChuoiKetNoiCoSoDuLieu = "";
            strChuoiKetNoiCoSoDuLieu += "Data Source =" + tenmc + ";";
            strChuoiKetNoiCoSoDuLieu += "Initial Catalog =" + tencsdl + ";";
            strChuoiKetNoiCoSoDuLieu += "User ID =" + tennguoidung + ";";
            strChuoiKetNoiCoSoDuLieu += "Password =" + matkhau + ";";
            return strChuoiKetNoiCoSoDuLieu;
        }
        public string GetConnectionString()
        {
            strChuoiKetNoiCoSoDuLieu = "";
            strChuoiKetNoiCoSoDuLieu += "Data Source =" + TenMayChu + ";";
            strChuoiKetNoiCoSoDuLieu += "Initial Catalog =" + TenCSDL + ";";
            strChuoiKetNoiCoSoDuLieu += "User ID =" + TenNguoiDung + ";";
            strChuoiKetNoiCoSoDuLieu += "Password =" + MatKhau + ";";
            return strChuoiKetNoiCoSoDuLieu;
        }
    }
    class MyConnection:IMyConnection
    {
        SqlConnection conn;
        public clsKetNoi InforConnect { get; set; }
        public MyConnection(string strServerName, string strDatabase, string strUserName,string strPass)
        {
            InforConnect = new clsKetNoi();
            InforConnect.MatKhau = strPass;
            InforConnect.TenCSDL = strDatabase;
            InforConnect.TenMayChu = strServerName;
            InforConnect.TenNguoiDung = strUserName;
        }
        public string GetConectionString()
        {
            return InforConnect.GetConnectionString();
        }
        public SqlConnection GetConnection()
        {
            conn = new SqlConnection();
            conn.ConnectionString = InforConnect.GetConnectionString();
            try
            {
                conn.Open();
            }
            catch (System.Exception)
            {
               
            }
            return conn;
        }
        public SqlConnection GetConnection(string strConnectionString)
        {
            conn = new SqlConnection();
            conn.ConnectionString = strConnectionString;
            try
            {
                conn.Open();
            }
            catch (System.Exception)
            {

            }
            return conn;
        }
    }
}


Bước 3. Tạo Form kết nối như sau:



STT
Đặt tên
Kiểu
Hiển thị
Ghi chú
1
txtServerName
Texbox

Tên máy chủ
2
txtTenCSDL
Texbox

Tên cơ sở dữ liệu
3
txtTenNguoiDung
Texbox

Tên login
4
txtMatKhau
Texbox

Mật khẩu
5
btnOK
Button
OK
Đồng ý
6
btnTry
Button
Thử kết nối
Thử kết nối

Và giao diện form kết nối như sau:
tinhoccoban.net - Giao diện form kết nối.
Giao diện form kết nối.

Bước 4.Viết code cho các nút

Viết code cho nút Thử kết nối
private void btnTry_Click(object sender, EventArgs e)
        {
            myConnection = new DAL.MyConnection(
                txtServerName.Text.Trim(),
                txtTenCSDL.Text.Trim(),
                txtTenNguoiDung.Text.Trim(),
                txtMatKhau.Text.Trim()
                );
          
            if (myConnection.GetConnection().State==ConnectionState.Open)
            {                
                lblThongBao.Text = "Kết nối thành công với chuỗi này!";
                btnOK.Enabled = true;
            }
            else
            {
                lblThongBao.Text = "Không kết nối được CSDL với chuỗi này.";
            }         
          
        }

 Viết code cho nút OK
private void btnOK_Click(object sender, EventArgs e)
        {          
            strChuoiKetNoiCoSoDuLieu = myConnection.GetConectionString();
            Form1 frm = new Form1(strChuoiKetNoiCoSoDuLieu);
            this.Hide();
            frm.ShowDialog();
            this.Show();           
        }

Bước 5. Tạo thêm 1 Contructor cho form main (Form1)
public Form1(string strKetNoi)
        {
            strKetnoi = strKetNoi;
            InitializeComponent();
            if (strKetnoi != null && strKetnoi != "")
            {
                lblNhanThongTin.Text = strKetnoi;
            }
            else
            {
                lblNhanThongTin.Text = "Máy chủ Cơ sở dữ liệu chưa được kết nối.";
            }
        }


Bài đăng phổ biến

Bài viết mới nhất

Tin học cơ bản - Nền tảng của mọi kỹ năng

Mọi thông tin trên blog đều được giữ bản quyền bởi Tin học cơ bản. Các bạn nếu muốn lấy thông tin từ blog vui lòng ghi rõ nguồn Tinhoccoban.net

TIN HỌC CƠ BẢN