CHƯƠNG 4: PHẦN MỀM ỨNG DỤNG “AUTO GENERATE CODE”

Một phần của tài liệu Xây dựng phần mềm auto generate code và ứng dụng vào website tin tức luận văn tốt nghiệp đại học (Trang 26 - 39)

4.1. Đặt vấn đề

Khi xây dựng các ứng dụng hay web sử dụng mô hình 3 lớp thì chúng ta phải tiến hành theo tuần tự:

- Thiết kế cơ sở dữ liệu - Tạo các Stored Procedure

- Xây dựng các class (lớp) trong lớp truy xuất dữ liệu (Data Access Layer)

- Xây dựng các phương thức, nghiệp vụ trong lớp xử lý nghiệp vụ (Business Logic Layer)

- Xây dựng, thiết kế giao diện để tương tác với người dùng.

Trong đó việc tạo các Stored Procedure và các class trong lớp Data Access Layer đều thực hiện các chức năng cơ bản như: sửa, xóa, thêm, lấy thông tin, lấy thông tin có điều kiện. Những chức năng trên đối với các bảng cơ sở dữ liệu khác nhau thì đều có cú pháp giống nhau. Với một cơ sở dữ liệu có rất nhiều bảng, mỗi bảng lại rất phức tạp (nhiều trường dữ liệu) thì các công việc trên sẽ chiếm rất nhiều thời gian và có thể rất dễ nhầm lẫn trong quá trình viết code.

Vì vậy việc xây dựng phần mềm “Auto Generate Code” sẽ giúp người lập trình viên giảm được những công việc trên bằng cách tự động tạo ra các Stored Procedure và các Class trong lớp Data Access Layer một cách nhanh chóng và chính xác.

4.2. Cấu trúc của chương trình

Chương trình gồm 2 phần nhằm tạo sự đơn giản và tiện dụng cho người sử dụng:

- Phần 1: Có chức năng tương tự như một hệ quản trị cơ sở dữ liệu thu nhỏ gồm giao diện kết nối vào CSDL và giao diện xem, kiểm tra CSDL. - Phần 2: Có chức năng chính là tự động tạo các Stored Procedure cơ bản

để tương tác với các bảng trong cơ sở dữ liệu và các class cơ bản trong lớp Data Access Layer.

4.3. Quy trình hoạt động của hệ thống

4.3.1. Thông tin đầu vào đầu ra của hệ thống

- Thông tin vào:

Thông tin đầu vào của hệ thống là: thông tin dùng để đăng nhập, kết nối vào CSDL của hệ quản trị SQL Sever 2005, tên các đối tượng, các biến dùng để tạo các Stored Procedure và các class trong lớp Data Access Layer.

- Thông tin ra:

Thông tin đầu ra của hệ thống là: tệp chứa các Stored Procedure cơ bản và các class trong lớp Data Access Layer như class chứa các phương thức truy cập CSDL, các class về thông tin các đối tượng (các bảng) trong CSDL.

4.3.2. Hoạt động của hệ thống

a. Hoạt động lấy thông tin để hiện thị:

Sau khi điền thông tin vào form đăng nhập để kết nối đến hệ quản trị CSDL SQL Sever 2005 cụ thể là kết nối đến CSDL “master” của hệ thống. Ở đây hệ thống sẽ lấy danh sách các CSDL bằng cách lấy thông tin từ bảng sysdatabases thông qua câu lệnh sql như sau:

Select name from sysdatabases

Ở đây các CSDL master, model, msdb, tempdb là các CSDL của hệ thống nên sẽ không đưa vào danh sách các CSDL được chọn.

Sau đó từ các CSDL này để lấy ra danh sách các bảng do các người dùng tạo ra thì hệ thống sẽ lấy thông tin từ bảng sysobjects thông qua câu lệnh sql sau:

Select id,name from sysobjects Where xtype='u'

Order by name

Để từ các bảng này lấy ra được danh sách các trường, giá trị của các trường đó thì hệ thống sẽ lấy thông tin từ bảng sysColumns và systypes thông qua câu lệnh sql sau, trong đó id là id của bảng cần lấy thông tin:

SELECT sysColumns.Name as [field],systypes.Name as [type], CASE systypes.Name WHEN 'nchar' THEN sysColumns.length/2 WHEN 'nvarchar' THEN sysColumns.length/2

WHEN 'ntext' THEN sysColumns.length/2 ELSE sysColumns.length

END as [length],

sysColumns.colStat as [index] FROM sysColumns,systypes WHERE id= idTable -- Id của table đã chọn

AND sysColumns.xtype=systypes.xtype AND systypes.xtype=systypes.xusertype

b. Hoạt động tạo file:

Sau khi lấy được các thông tin trên và các thông tin đầu vào khác thì công việc tiếp theo sẽ là tạo các tệp Stored Procedure và các class trong Data Access Layer.

Để phục vụ cho việc tạo tệp trên thì class CshapFile.cs của chương trình sẽ chứa các phương thức tạo tệp, ghi tệp và xử lý việc ghi tệp. Trong đó các phương thức quan trọng như:

- Phương thức thêm một dòng mới trong tệp:

private string m_FileName = ""; public void addLine(string strLine) {

if ((strLine == "}") && (this.m_Space.Length > 0)) {

this.m_Space = this.m_Space.Remove(this.m_Space.Length - 4); }

this.m_Content += this.m_Space + strLine + "\r\n"; if (strLine == "{") this.m_Space += " ";

}

- Phương thức ghi tạo tệp và ghi tệp: private string m_Content = ""; private string m_FileName = ""; public bool save()

{

try {

System.IO.StreamWriter sw = new

System.IO.StreamWriter(this.m_FileName, false, Encoding.UTF8); sw.Write(this.m_Content);

sw.Close(); return true; }

return false; }

}

Và để phục vụ cho việc chuyển đổi qua lại giữa các kiểu của C# và kiểu của ngôn ngữ Sql thì chương trình sẽ có các phương thức như:

- Chuyển từ kiểu ngôn ngữ Sql sang ngôn ngữ C#: private string getCShapType(string strType) {

strType = strType.ToLower();

if (strType == "tinyint") return "byte?"; if (strType == "int") return "int?";

if (strType == "smallint") return "short?"; if (strType == "bigint") return "long?"; if (strType == "decimal") return "decimal?"; if (strType == "numeric") return "decimal?"; if (strType == "real") return "float?"; if (strType == "money") return "decimal?"; if (strType == "smallmoney") return "decimal?"; if (strType == "float") return "double?";

if (strType == "bit") return "bool?";

if ((strType == "datetime") || (strType == "smalldatetime")) { return "DateTime?"; } return "string"; }

private string getSqlDbType(string strType) {

switch (strType.ToLower()) {

case "bigint": return "BigInt"; case "int": return "Int";

case "smallint": return "SmallInt"; case "tinyint": return "TinyInt"; case "decimal": return "Decimal"; case "numeric": return "Decimal"; case "real": return "Decimal"; case "money": return "Money";

case "smallmoney": return "SmallMoney"; case "float": return "Float";

case "bit": return "Bit";

case "datetime": return "DateTime";

case "smalldatetime": return "SmallDateTime"; default: return "NVarChar";

} }

- Hàm chuyển dạng dữ liệu phục vụ cho việc tạo các class trong Data Access Layer:

private string getConvertType(string strType) {

strType = strType.ToLower();

if (strType == "tinyint") return "ToByte"; if (strType == "int") return "ToInt32"; if (strType == "smallint") return "ToInt16"; if (strType == "bigint") return "ToInt64"; if (strType == "decimal") return "ToDecimal";

if (strType == "real") return "ToSingle"; if (strType == "money") return "ToDecimal"; if (strType == "smallmoney") return "ToDecimal"; if (strType == "float") return "ToDouble";

if (strType == "bit") return "ToBoolean";

if ((strType == "datetime") || (strType == "smalldatetime")) { return "ToDateTime"; } return "ToString"; }

- Hàm kiểm tra kiểu Char và kiểu Text trong ngôn ngữ Sql: private bool isCharType(string strType)

{

switch (strType.ToLower()) {

case "char": return true; case "nchar": return true; case "varchar": return true; case "nvarchar": return true; case "text": return true; case "ntext": return true; default: return false; }

}

private bool isTextType(string strType) {

switch (strType.ToLower()) {

case "text": return true; case "ntext": return true;

default: return false; }

}

4.4. Các Form giao diện của chương trình

4.4.1. Giao diện đăng nhập, kết nối vào CSDL

Nhập các thông tin cần thiết như tên máy chủ, tên người dùng và mật khẩu để kết nối đến CSDL SQL Server 2005:

Hình 4.1: Form kết nối cơ sở dữ liệu

4.4.2. Giao diện chính của chương trình

Sau khi nhập chính xác các thông tin và kết nối đến CSDL thì sẽ xuất hiện form giao diện như một hệ quản trị thu nhỏ:

Hình 4.2: Form chương trình chính

Chúng ta có thể kết nối lại với những thông tin đăng nhập khác bằng cách click vào menu, chọn Hệ thống, chọn Kết nối đến server:

Hình 4.3: Kết nối với cơ sở dữ liệu khác

Chọn các bảng cần xem thông tin và click vào các checkbox để chọn các bảng cần sinh mã để tạo các tệp Stored Procedure và các class tương ứng:

Hình 4.4: Chọn bảng dữ liệu cần tạo mã

Sau khi chọn các bảng và chọn đường dẫn để lưu các tệp, click vào button “Generate” để thực hiện việc tạo các tệp:

Hình 4.5: Thông báo tạo tệp thành công

4.4.3. Giao diện form hướng dẫn

Hướng dẫn cách sử dụng chương trình:

Hình 4.7: Form hướng dẫn

4.4.4. Giao diện form giới thiệu

Giới thiệu về chương trình:

CHƯƠNG 5: ỨNG DỤNG CỦA PHẦN MỀM VÀO WEBSITE

Một phần của tài liệu Xây dựng phần mềm auto generate code và ứng dụng vào website tin tức luận văn tốt nghiệp đại học (Trang 26 - 39)

Tải bản đầy đủ (DOC)

(50 trang)
w