Tin học cơ bản

Học tập, chia sẻ kiến thức cơ bản về tin học.

Hiển thị các bài đăng có nhãn lap trinh windows. Hiển thị tất cả bài đăng

[Lập trình windows] Thêm mới 1 bản ghi vào table trong CSDL theo mô hình 3 lớp.

Bài trước: Kết nối cơ sở dữ liệu - Lớp kết nối.

Mục tiêu: Trình bày 1 cách cấu trúc chương trình theo mô hình 3 lớp để thêm mới 1 bản ghi vào table trong cơ sở dữ liệu.

tinhoccoban.net - Mô hình 3 lớp trong lập trình windows
Mô hình 3 lớp trong lập trình windows

Bước 1. Tạo bảng tblSinhVien trong Database QLSV.

STT
Mã hóa tên
Ý nghĩa
Kiểu
Ghi chú
1
MaSV
Mã Sinh viên
char(10)

2
TenSV
Tên Sinh viên
nvarchar(30)

3
DiaChi
Địa chỉ 
nvarchar(50)

4
GhiChu
Ghi chú
nvarchar(50)

Mã tạo bảng tblSinhVien

CREATE TABLE [dbo].[tblSinhVien](
            [MaSV] [char](10) NOT NULL,
            [TenSV] [nvarchar](30) NULL,
            [DiaChi] [nvarchar](50) NULL,
            [GhiChu] [nvarchar](50) NULL,
 CONSTRAINT [PK_tblSinhVien] PRIMARY KEY CLUSTERED
(
            [MaSV] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]


Tạo thủ tục thêm mới sinh viên


USE [QLSV]
GO
/****** Object:  StoredProcedure [dbo].[sp_inserttoSinhVienTable]    Script Date: 10/31/2018 10:35:06 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:                      <Author,,hoangtn>
-- Create date: <30-10-2018,,>
-- Description:   <Them moi 1 ban ghi vao bang sinh vien,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_inserttoSinhVienTable]
            -- Add the parameters for the stored procedure here
            (
            @MaSV char(10),
            @TenSV nvarchar(30),
            @DiaChi nvarchar(50),
            @GhiChu nvarchar(50)
            )
AS
BEGIN
            -- SET NOCOUNT ON added to prevent extra result sets from
            -- interfering with SELECT statements.
            SET NOCOUNT ON;

    -- Insert statements for procedure here
            insert into tblSinhVien(MaSV,TenSV,DiaChi,GhiChu)
            Values(@MaSV,@TenSV,@DiaChi,@GhiChu)
END


 Bước 2. Tạo interface và class cho thực thể Sinh viên: ISinhVien, clsSinhVien

Tạo project có cấu trúc như sau:
Cấu trúc Project theo mô hình 2 lớp trong lập trình Windows 
Trong đó:
ISinhVien

namespace Mohinh3Tang.DAL
{
    interface ISinhVien
    {
        /// <summary>
        /// Mã sinh viên
        /// </summary>
        string MaSV { get; set; }
        /// <summary>
        /// Tên sinh viên
        /// </summary>
        string TenSV { get; set; }
        /// <summary>
        /// Địa chỉ của sinh viên
        /// </summary>
        string DiaChi { get; set; }
        /// <summary>
        /// Ghi chú
        /// </summary>
        string GhiChu { get; set; }
        /// <summary>
        /// Chèn thêm 1 bản ghi với thông tin sinh viên mới đã có trong các thuộc tính.
        /// </summary>
        /// <param name="strConnectionString"></param>
        /// <returns>True: chèn được bản ghi mới;False: Không chèn được</returns>
        bool ChenMoiMotBanGhi(string strConnectionString);
    }
}
clsSinhVien
using System.Data.SqlClient;
namespace Mohinh3Tang.DAL
{
    class ClsSinhVien : ISinhVien
    {
        public string MaSV{get;set;}
        public string TenSV { get; set; }
        public string DiaChi { get; set; }
        public string GhiChu { get; set; }
        public ClsSinhVien()
        {
        }
        public ClsSinhVien(string masv, string tensv,string diachi, string ghichu)
        {
            MaSV = masv;
            TenSV = tensv;
            DiaChi = diachi;
            GhiChu = ghichu;
        }
        public bool ChenMoiMotBanGhi(string strConnectionString)
        {
            bool kt = false;
            SqlConnection sqlConn = new SqlConnection(strConnectionString);
            try
            {
                sqlConn.Open();
                SqlCommand sqlComm = new SqlCommand();
                sqlComm.Connection = sqlConn;
                sqlComm.CommandText = "sp_inserttoSinhVienTable";
                sqlComm.CommandType = System.Data.CommandType.StoredProcedure;

                //Truyen tham so vao cho thu tuc
                sqlComm.Parameters.Add("@MaSV", System.Data.SqlDbType.Char, 10).Value = MaSV ;               
                sqlComm.Parameters.Add("@TenSV", System.Data.SqlDbType.NVarChar,30).Value=TenSV;
                sqlComm.Parameters.Add("@DiaChi",System.Data.SqlDbType.NVarChar,50).Value=DiaChi;
                sqlComm.Parameters.Add("@GhiChu",System.Data.SqlDbType.NVarChar,50).Value=GhiChu;
               
                //Thuc thi cau lenh
                sqlComm.ExecuteNonQuery();
                kt = true;
            }
            catch
            { }
            return kt;
        }
    }
}


Bước 3. Tạo form SinhVien
STT
Đặt tên
Kiểu
Ghi chú
1
txtTenSV
Texbox

2
txtDiaChi
Texbox

3
txtGhiChu
Texbox

4
txtMaSV
Texbox

5
lblThongbao
Label


Có giao diện như sau:
tinhoccoban.net - Form thêm mới 1 sinh viên
Form thêm mới 1 sinh viên

Bước 4. Tạo thêm 1 contructor cho form frmSinhVien

public frmSinhVien(string strConnectionStringSent)
        {
            strConectionString = strConnectionStringSent;
            InitializeComponent();
        }

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

Viết code cho nút thêm mới:
private void btnThem_Click(object sender, EventArgs e)
        {
            DAL.ClsSinhVien sinhvien = new DAL.ClsSinhVien(txtMaSV.Text,
                txtTenSV.Text,
                txtDiaChi.Text,
                txtGhiChu.Text);
            bool kt = sinhvien.ChenMoiMotBanGhi(strConectionString);
            if (kt)
            {
                lblThongbao.Text = "Đã chèn một bản ghi vào bảng Sinh viên.";
            }
            else
            {
                lblThongbao.Text = "Không chèn được.";
            }
        }

Bài tiếp theo: