Cách kết nối SQL Server trong C# Winforms – Freetuts

Trong bài viết này mình sẽ hướng dẫn những bạn cách kết nối SQL Server trong C # Winforms. Đây là bước tiên phong và quan trọng nhất khi những muốn thao tác được với SQL Server .

Mỗi loại cơ sở dữ liệu sẽ sử dụng một namespace tương ứng, trong trường hợp làm việc với CSDL SQL Server thì namespace là System.Data.SqlClient. Để kết nối tới SQL Server ta sử dụng đối tượng SqlConnection trong C#, đây là một class có trong namespace System.Data.SqlClient.

banquyen png

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

test php

Mục lục bài viết

1. Kết nối CSDL với quyền chứng thực của Windows trong C#

Khi kết nối với CSDL SQL Server với quyền chứng thực của Windows thì chuỗi kết nối sẽ không tồn tại hai thuộc tính User Id và Password. Thay vào đó, chuỗi kết nối sẽ có thuộc tính Integrated Security = SSPI hoặc Integrated Security = True.

string _connectionString = "server=.; database=hoadon;integrated security=true";
//hoặc
string _connectionString = "server=.;database=hoadon;integrated security = SSPI";

Ngoài ra thuộc tính database còn hoàn toàn có thể thay thế sửa chữa bằng Initial Catalog. Sau đây là một số ít thuộc tính của chuỗi kết nối connectionString .

  • Data Source or Server: Tên máy chủ hay địa chỉ IP máy chủ nơi CSDL hoạt động.
  • Database or Initial Catalog: Tên của CSDL chúng ta muốn sử dụng.
  • Connection Timeout: Quy định thời gian chờ của ADO.NET cho kết nối thành công. Nếu quá thời gian này mà vẫn chưa kết nối được chúng ta sẽ nhận được thông báo lỗi ngoại lệ Connection Timeout.
  • Integrated Security=True or Integrated Security=SSPI: Nếu chúng ta muốn cơ chế đăng nhập SQL Server sử dụng quyền chứng thực của hệ điều hành Windows.

2. Kết nối CSDL với quyền chứng thực của SQL Server trong C#

Trong trường hợp chúng ta muốn kết nối với SQL Server bằng quyền chứng thực của SQL Server thì chỉ cần thay Integrated Security=True bằng hai thông số User IdPWD.

  • User Id: Tài khoản được tạo bởi SQL Server (giả sử là sa, đây là tài khoản cao nhất trong SQL Server)
  • PWD: Mật khẩu của tài khoản muốn kết nối (giả sử là bimat).

Ví dụ:

ConnetionString = "Server=.; Database=Student;Connection Timeout-60; User Id=sa;Password=pass";
//hoặc
ConnectionString = "Server=.;Database=Student;Connection Timeout=60;User Id=sa; PWD=pass";

*Lưu ý: Chuỗi kết nối (Connection) cần phải được mở trước khi thực hiện các thao tác với CSDL. Sau khi kết thúc thao tác với CSDL, thì cần phải đóng chuỗi chết nối để giải phóng tài nguyên cho hệ thống.

Xem thêm  ‎Snapchat

3. Tập tin lưu trữ chuỗi kết nối

Để cho phép người dùng hoàn toàn có thể cấu hình giá trị cho những thuộc tính trong chuỗi kết nối cơ sở tài liệu, tất cả chúng ta hoàn toàn có thể sử dụng những loại định dạng file như : *. ini, *. txt. Tuy nhiên, khi thao tác với. NET, tất cả chúng ta hoàn toàn có thể sử dụng file App. config với cấu trúc nội dung được tổ chức triển khai theo dạng XML .

*Lưu ý: App.config là file có định dạng XML được giới thiệu từ phiên bản .NET 1.0. Nó cho phép chúng ta khai báo các tham số cùng với giá trị và các chỉ thị khác.

Ví dụ: Khi chúng ta kết nối SQL Server với file App.config.



 
 
 

Hoặc theo dạng như sau :



 
   
   
   
   
   
 

4. Mở và đóng chuỗi kết nối trong C#

Sau khi khai báo và khởi tạo đối tượng SqlConnection theo các cách ở trên, chúng ta sẽ thực hiện mở kết nối với CSDL bằng cách gọi phương thức Open().

SqlConnection.Open();

Chú ý: để kiểm tra tính hợp lệ của người dùng khi đăng nhập CSDL, chúng ta cần khai báo để mở CSDL với chuỗi kết nối theo hai quyền truy cập của Windows và SQL Server.

Sau khi mở kết nối và thao tác với CSDL xong thì tiến hành đóng kết nối bằng phương thức Close().

SqlConnection.Close();

Các bạn quan tâm chỉ mở chuỗi kết nối khi thiết yếu và đóng ngay nếu không sử dụng đến CSDL hoặc ngay sau khi hoàn tất thao tác với CSDL .

5. Ví dụ kết nối SQL Server trong C#

Trong ví dụ này mình sẽ thực thi tạo một Form giao diện với hai quyền truy vấn Windows và SQL Server. Sau đó giải quyết và xử lý một số ít sự kiện và công dụng của những điều khiển và tinh chỉnh trên Form. Ở những bài trước mình đã hướng dẫn về những tinh chỉnh và điều khiển trong Winforms, những bạn hoàn toàn có thể xem lại nhé .

bai1 06 png

Việc đầu tiên chúng ta cần tạo Form giao diện như trên, sau đó đặt tên cho từng điều khiển để dễ gọi trong khi viết code. Phần này mình đã hướng dẫn rất kỹ ở các bài trước, vậy nên mình sẽ không hướng dẫn cụ thể nữa. Các bạn có thể xem lại tại đây.

Tạo User ID và Password trong SQL Server

Tiếp đến ta sẽ tạo User Id và Password cho quyền đăng nhập bằng SQL Server, đơn cử như sau :

Bước 1: Đăng nhập vào SQL Server.

Bước 2: Click chuột phải vào Logins và chọn New Login.

bai1 01 png

Sau khi chọn New Login, thì một hành lang cửa số mới hiện ra. Điền khá đầy đủ thông tin thiết yếu khi tạo User .

bai1 02 png

Bước 3: Chọn database mà User được truy cập đến, bằng cách Click chuột phải vào User vừa mới được tạo và chọn Properties.

bai1 03 png

Một hành lang cửa số mới hiện ra, khi đó ta chọn Database mà User này sẽ truy vấn trong mục User Mapping .

bai1 04 png

Bước 4: Cấp quyền User.

Ở đây mình chỉ sử dùng quyền Connect để demo mà thôi. Các bạn hoàn toàn có thể được cho phép những quyền khác nữa, tùy vào chức vụ của User. Các bạn sẽ Click chuột phải vào Tên Database muốn được cho phép kết nối và thao tác, sau đó chọn vào properties .

bai1 05 png

Tiếp đến sẽ chọn những quyền cho User này, ở đây mình chọn quyền truy vấn Connect trong mục Permissions .

bai1 09 png

Như vậy là tất cả chúng ta đã tạo xong User Id và Password trong SQL Server, giờ đây hoàn toàn có thể sử dụng thông tin tài khoản đó để đăng nhập từ C # rồi đấy .
Bây giờ sẽ giải quyết và xử lý sự kiện cho những điều khiển và tinh chỉnh, đơn cử là Button ” Connect ” và những RadioButton khi click vào để chọn chính sách truy vấn .

Xử lý sự kiện cho các RadioButton

Ta sẽ giải quyết và xử lý sự kiện khi người dùng Click vào RadioButton, đơn cử như sau :

  • Khi người dùng click vào RadioButton “Chứng thực bằng Windows”, thì ta sẽ hiện hai Textbox “Server” và “Database” cho người dùng điền. Còn hai Textbox “Tài khoản” và “Mật khẩu” sẽ ẩn đi dưới chế độ ReadOnly.
  • Khi người dùng click vào RadioButton “Chứng thực bằng SQL Server” thì ta sẽ hiện cả bốn TextBox cho người dùng điền vào.
private void rdbWindows_CheckedChanged(object sender, EventArgs e)
{
     txtTaiKhoan.ReadOnly = true;
     txtMatKhau.ReadOnly = true;
     txtTenDb.ReadOnly = false;
     txtTenServer.ReadOnly = false;
}

private void rdbSQL_CheckedChanged(object sender, EventArgs e)
{
     txtTaiKhoan.ReadOnly = false;
     txtMatKhau.ReadOnly = false;
     txtTenDb.ReadOnly = false;
     txtTenServer.ReadOnly = false;
}

Xử lý sự kiện cho button “Connect”

Ta sẽ xử lý sự kiện cho button “Connect”. Nếu người dùng chọn quyền truy cập bằng Windows thì ta tạo chuỗi kết nối bằng quyền truy tập Windows. Ngược lại nếu người dùng chọn vào quyền truy cập SQL Server thì ta cũng sẽ tạo chuỗi kết nối bằng SQL Server với tài khoản và mật khẩu.

private void btnConnect_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection conn = new SqlConnection();
                string connectionstring = "";
                if (rdbWindows.Checked == true)
                {
                    connectionstring = "server=" + txtTenServer.Text;
                    connectionstring += ";database=" + txtTenDb.Text;
                    connectionstring += ";integrated security=true";
                    conn.ConnectionString = connectionstring;
                }
                else
                {
                    connectionstring = "server=" + txtTenServer.Text;
                    connectionstring += ";database=" + txtTenDb.Text;
                    connectionstring += ";uid=" + txtTaiKhoan.Text;
                    connectionstring += ";pwd=" + txtMatKhau.Text;
                    conn.ConnectionString = connectionstring;
                }
                conn.Open();
                MessageBox.Show("ket noi thanh cong");
                conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

Kết quả: khi người dùng nhập đúng các thông tin và chọn vào button “Connect”.

bai1 10 pngbai1 11 png

Code hoàn chỉnh kết nối SQL Server trong C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Connection_to_Database
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            rdbWindows.Checked = true;
            txtMatKhau.ReadOnly = true;
            txtTaiKhoan.ReadOnly = true;
        }

        private void rdbWindows_CheckedChanged(object sender, EventArgs e)
        {
            txtTaiKhoan.ReadOnly = true;
            txtMatKhau.ReadOnly = true;
            txtTenDb.ReadOnly = false;
            txtTenServer.ReadOnly = false;
        }

        private void rdbSQL_CheckedChanged(object sender, EventArgs e)
        {
            txtTaiKhoan.ReadOnly = false;
            txtMatKhau.ReadOnly = false;
            txtTenDb.ReadOnly = false;
            txtTenServer.ReadOnly = false;
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            DialogResult dg = MessageBox.Show("Bạn có muốn thoát?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            if(dg == DialogResult.OK)
            {
                Application.Exit();
            }
        }

        private void btnConnect_Click(object sender, EventArgs e)
        {
            try
            {
                SqlConnection conn = new SqlConnection();
                string connectionstring = "";
                if (rdbWindows.Checked == true)
                {
                    connectionstring = "server=" + txtTenServer.Text;
                    connectionstring += ";database=" + txtTenDb.Text;
                    connectionstring += ";integrated security=true";
                    conn.ConnectionString = connectionstring;
                }
                else
                {
                    connectionstring = "server=" + txtTenServer.Text;
                    connectionstring += ";database=" + txtTenDb.Text;
                    connectionstring += ";uid=" + txtTaiKhoan.Text;
                    connectionstring += ";pwd=" + txtMatKhau.Text;
                    conn.ConnectionString = connectionstring;
                }
                conn.Open();
                MessageBox.Show("ket noi thanh cong");
                conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }
    }
}

Như vậy là tất cả chúng ta đã tìm hiểu và khám phá xong cách kết nối với SQL Server trong C # Winforms. Ở bài tiếp theo mình sẽ liên tục trình làng cách tạo Form đăng nhập với những Account được tàng trữ trong SQL Server, những bạn quan tâm theo dõi nhé ! ! !

Rate this post

Bài viết liên quan

Để lại ý kiến của bạn:

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *