Archive for January 2014

Chương trình quản lý phim




thuvienwinform - Một ứng dụng nữa của SQLite, ứng dụng nhỏ này có chức năng quản lí phim, bạn nào có nhu cầu có thể tải về dùng thử! Vì ý tưởng bộc chột nên chắc chắn không tránh khỏi thiếu sót được, mong các bạn thông cảm cảm vào báo lỗi lại cho mình để hoàn thiện thêm! Phiên bản này liệt kê phim theo kiểu danh sách, dự là phiên bản sau sẽ liệt kê theo biểu tượng giống như kiểu trên các trang web vậy

Cập nhật

Phiên bản 1.1Beta: (1.9MB)
Dropbox: https://www.dropbox.com/s/49jhqqj442x2djc/thuvienwinform-QuanLiPhim1.1beta.rar
MF: http://www.mediafire.com/download/5a61mysp8j3occ5
Có gì mới:
- Thêm hiển thị dạng lưới
- Thêm nút làm mới
- Sửa nút Xem gặp lỗi khi chưa có đường dẫn

Phiên bản 1.0: (1.5MB)
Dropbox:https://www.dropbox.com/s/tg1rbtrxrej6q4f/thuvienwinform-QuanLiPhim.rar
MF: http://www.mediafire.com/download/z3e975zcv17dmxa

Giới thiệu

- Các chức năng chính của chương trình:
+ Quản lí phim theo tên, đạo diễn, diễn viên,...
+ Có thêm phần mô tả phim cho gợi nhớ lại  nội dung, khi mà kho phim của bạn quá khổng lồ không thể nhớ hết các phim thì phần mô tả này hết sức hữu ích
+ Với các phim có phụ để thì bạn thường copy file phim và phụ để vào cùng 1 folder khi đó bạn nên copy thêm 1 file ảnh của phim đó vào folder này để làm ảnh hiển thị cho phim trong chương trình

Hướng dẫn


B1: Bạn tổ chức các phim lại vào 1 folder. Có 2 cách là để các file phim lẫn lộn nhau trong 1 folder chung. Cách 2 là cho từng phim vào trong từng folder. Cả 2 cách đều được hỗ trợ cả
B2: Mở chương trình lên và trỏ đến thư mục chứa các phim (File -> Nạp thư mục hoặc File -> Thêm file phim)


1/26/2014
Đăng bởi :
Nhãn :

Một số hàm hữu ích trong LINQ to SQL



thuvienwinform - LINQ to SQL có rất nhiều hàm, thủ tục hỗ trợ chúng ta trong việc lọc dữ liệu chọn dữ liệu và tất nhiên là nó đã được tối ưu sẵn, cách sử dụng cũng rất đơn giản, dễ ràng trong việc sử dụng, hôm nay mình xin được giới thiệu với mọi người một số hàm, thủ tục chọn dữ liệu

1. Chọn dữ liệu từ 2 bảng:
- Để chọn dữ liệu từ 2 bảng ta sẽ dùng lệnh from như sau:
var canBos = from cb in db.tbCanBos
             from phong in db.tbPhongs
             where (cb.IdPhong == phong.IdPhong) && (phong.TenPhong == "Khoa Ngữ")
             select new { hotenthat = cb.Hoten, quequan = cb.QueQuan, cb.HeSoLuong, phong.TenPhong };


- Chú ý: trong select ta phải dùng new, tức là tạo một bảng mới gồm các thành viện được chọn.

2. Sắp xếp tăng dần theo một trường
- Cách 1: Sắp xếp ngay trong câu lệnh truy vấn:
var canBos = from cb in db.tbCanBos
             from phong in db.tbPhongs
             where (cb.IdPhong == phong.IdPhong) && (phong.TenPhong == "Khoa Ngữ")
             orderby cb.HeSoLuong descending //Sap xep theo hesoluong
             select new { hotenthat = cb.Hoten, quequan = cb.QueQuan, cb.HeSoLuong, phong.TenPhong };

Câu truy vấn này sẽ chọn ra những cán bộ thuộc khoa ngoại ngữ và sắp xếp tăng dần theo hesoluong

- Cách 2: Truy vấn xong mới sắp xếp (cách này hay hơn)
var canBos = from cb in db.tbCanBos
             from phong in db.tbPhongs
             where (cb.IdPhong == phong.IdPhong) && (phong.TenPhong == "Khoa Ngữ")
             select new { hotenthat = cb.Hoten, quequan = cb.QueQuan, cb.HeSoLuong, phong.TenPhong };
canBos = canBos.OrderByDescending(p => p.HeSoLuong);

3. Lấy số dữ liệu nhất định
- Như ví dụ lấy số cán bộ ở trên, ta chỉ cẩn lấy ra 10 đầu tiên trong kết quả thu được thôi, câu lệnh sẽ là:
canBos = canBos.Take(10);
Hoặc
canBos = canBos.Skip(10);
- Với cách dùng Skip() thì ta sẽ bỏ qua 10 người ở đầu danh sách và lấy những người từ vị trí 11 trong danh sách thu được

4. Đếm số dữ liệu thu được sau khi truy vấn
int soNguoi = canBos.Count(10);

<còn tiếp>
1/08/2014
Đăng bởi :

[Linq to Sql] Tim kiếm

thuvienwinform - Trong bài này mình sẽ hướng dẫn các bạn cách truy vấn để tìm kiếm bằng Linq to Sql. Cũng tương tự như sửa, xóa đầu tiên cần xác định đối tượng tìm và lưu vào một biến, rồi chọn Datasource của datagridView là biến đó là OK
Demo: https://www.dropbox.com/s/ox0v7259rpyik91/Linq-ThemSuaXoa.rar (64KB)

Code:


private void btTimKiem_Click(object sender, EventArgs e)//Tìm kiếm
        {
            //Tìm Kiếm
            var listThanhVien = from ltv in db.DSLs
                                where ltv.HoTen.Contains(txtHoTen.Text)//Chọn những thành viên nào có tên gần giống với txtHoTen.Text
                                select ltv;
            dgvNoiDung.DataSource = listThanhVien;
            dgvNoiDung.Refresh();
        }      

1/07/2014
Đăng bởi :
Nhãn : ,

[Linq to Sql] Xóa dữ liệu

thuvienwinform - Sau bài 2: Sửa dữ liệu hôm nay mình sẽ giới thiệu với mọi người cách xóa một họ tên trong bảng DSL. Cũng tương tự như sửa vậy, đầu tiên cần xác định xem cái nào cần xóa sau đó ta xóa thành viên được chọn là xong. Ở đây việc chọn mình xác định bằng cách là dùng sự kiện CellClick của datagridView để xác định thành viên đang chọn.

Tải demo: bài 4

Code:


private void dgvNoiDung_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            txtHoTen.Text = dgvNoiDung.CurrentRow.Cells["HoTen"].Value.ToString();
        }

private void btXoa_Click(object sender, EventArgs e)//Xóa
        {
            //Xóa
            var thanhVien = db.DSLs.SingleOrDefault(tv => tv.HoTen == txtHoTen.Text);//Xác định thành viên cần xóa
            db.DSLs.DeleteOnSubmit(thanhVien);//Xóa thanh viên đã chọn
            db.SubmitChanges();//Xác nhận thay đổi
            Refresh();//làm mới lại datagridView
        }



1/06/2014
Đăng bởi :
Nhãn : ,

[Linq to Sql] Sửa dữ liệu


thuvienwinform - Sau bài 1: Load và thêm dữ liệu thì trong bài này mình sẽ giới thiệu code để sửa dữ liệu trong CSDL bằng LINQ to SQL. Các nguyên liệu như CSDL, form vẫn dùng ở bài trước. OK code khá đơn giản thui:

Tải Demo: bài 4


private void btSua_Click(object sender, EventArgs e)//Sửa
        {
            //Sửa
            //Xác định thanh viên cần sửa
            var thanhVien = (from tv in db.DSLs
                             where tv.HoTen == dgvNoiDung.CurrentRow.Cells["HoTen"].Value.ToString()//Chọn thành viên nào có tên giống tên nhập vào
                             select tv
                            ).SingleOrDefault();
            thanhVien.HoTen = txtHoTen.Text;
            db.SubmitChanges();
            Refresh();
        }

Giải thích:
SingleOrDefault(): chọn 1 đối tượng mà thôi
Ở đâu mình truy vấn thành viên có tên giống với tên trong txtHoTen sau đó tiến hành gán cho nó tên mới thông qua txtHoTen luôn
1/05/2014
Đăng bởi :
Nhãn : ,

[Linq to Sql] Load và Thêm dữ liệu


thuvienwinfom - Để thêm dữ liệu vào CSDL bằng Linq ta cần khai báo thư viện System.Linq (using System.Linq). Thường thì khi ta tạo project mới thì nó đã thêm sẵn dòng này cho ta rồi! OK bây giờ ta sẽ thực hiện việc thêm dữ liệu bằng Linq, 1 nốt nhạc là xong :v
Tải demo: Bài 4
Chuẩn bị: (vì mấy cái này cần cho mấy bài sau nên mọi người mới tập sử dụng Linq nên làm theo y hệt sẽ dễ hiểu hơn)
I. Tạo môi trường luyện tập
1. CSDL
+ Tên bảng: DSL (danh sách lớp)

+ Form mẫu. Các biến như trong hình

+ Add item LINQ to SQL cho form này:
B1: project -> add new item (CS + A)

B2: chọn LINQ to SQL và đặt tên cho nó là: LinqToSql -> ok

B3: Kéo bảng DSL đã tạo vào -> Ctrl + S

Tạo 1 biến db như sau:
LinqToSqlDataContext db = new LinqToSqlDataContext();
OK vậy là đã tạo được môi trường luyện tập...

II. Load dữ liệu từ CSDL ra datagridView bằng LINQ to SQL
Để tiện sử dụng lần sau ta tạo sẵn một thủ tục Refresh như sau:
private void Refresh()
        {
            dgvNoiDung.Rows.Clear();
            var list = from p in db.DSLs
                       where p.HoTen == p.HoTen//Chọn toàn bộ bảng
                       select p;
            dgvNoiDung.DataSource = list;
        }


Giải thích:
var list: khai báo 1 biến chưa có kiểu
form p in db.DSLs
where p.HoTen == p.HoTen
select p; :chọn toàn bộ bảng DSL

OK cho Refresh vào form load là xong viêc load dữ liệu:
private void Form1_Load(object sender, EventArgs e)
        {
            //dgvNoiDung.DataSource = db.DSLs;//Cách 1
            Refresh();//Cách 2
        }


III. Thêm dữ liệu vào CSDL
- Nếu ai đã từng sử dụng ADO.NET thì sẽ cảm thấy nó hơi ngược một chút. Trong ADO.NET thì chúng ta select -> frrom -> where còn trong LINQ to SQL thì from -> where -> select.
- Để thêm 1 họ tên vào bảng DSL ta code như sau:

private void btThem_Click(object sender, EventArgs e)//Sự kiện click btThem
        {
            //Thêm mới
            DSL thanhVien = new DSL();//Tạo 1 thành viên mới
            thanhVien.HoTen = txtHoTen.Text;//Gán giá trị HoTen của thanhvien
            db.DSLs.InsertOnSubmit(thanhVien);//Thêm thanhvien này vào csdl
            db.SubmitChanges();//Xác nhận thay đổi
            Refresh();//Làm mới lại datagridView
        }
Giải thích:
db.DSLs.InsertOnSubmit: thêm một thành viên vào bảng DSL
db.SubmitChanges: xác nhận thay đổi trong bảng. Nếu không có dòng này thì dữ liệu sẽ không được thêm vào CSDL

Bài 2 sẽ là sửa dữ liệu
1/04/2014
Đăng bởi :
Nhãn : ,

[Linq] Giới thiệu


thuvienwinform - Linq(Language Integrated Query - Ngôn ngữ tích hợp truy vấn) là thư viện mở rộng cho các ngôn ngữ lập trình C#, VB,...được Microsoft tích hợp vào .NET Framework (từ phiên bản 3.5).
Linq cho phép chúng ta làm việc với các tập dữ liệu như CSDL, XML, HTML,...qua đó người ra ta phân loại Linq như sau:

  • LINQ to Objects: làm việc với dữ liệu trên bộ nhớ (thường là các danh sách kế thừa interface IEnumerable) sử dụng cú pháp ngôn ngữ LINQ.
  • LINQ to XML: làm việc với dữ liệu XML sử dụng cú pháp ngôn ngữ LINQ.
  • LINQ to Entities: làm việc với Entity Framework.
  • LINQ to SQL: Làm việc với SQL Server.
  • LINQ to Datasets: Một kỹ thuật cho phép sử dụng LINQ trong một ứng dụng dựa trên DataSet mà không cần viết lại sử dụng LINQ to SQL.
  • PLINQ: Hỗ trợ sử dụng LINQ trong lập trình song song.




  • Tuy nhiên, trong các bài tiếp theo trong nhãn này mình chỉ nói đến LINQ to SQL!
    Như chúng ta đã biết để thao tác với CSDL cũng có thể dùng ADO.NET. Vậy chúng khác nhau như nào?
    - Đầu tiên Linq cho phép tạo câu truy vấn ngay trong ngôn ngữ lập trình. Với ADO.NET thì chúng ta phải viết câu truy vấn như một string vậy, điều đó rất khó kiểm lỗi (phải chạy thử mới biết được lỗi)
    - Khi thao tác với CSDL (Thêm, sửa, xóa,...) thì Linq đã tự tối ưu cho chúng ta để đảm bảo tốc độ cao nhất. Đơn cử như việc select, trong ADO.NET thì ta sử dụng "select *..." sau đó lọc ra những trường cần dùng, còn Linq thì chỉ select những trường cần chọn mà thôi nên nó sẽ tối ưu hơn. Hay nói cách khác thì Linq đã tối ưu sẵn cho ta rồi!
    - Về yêu cầu thì ADO.NET chỉ cần phiên bản .NET 2.0, còn Linq thì yêu cầu phiên bản 3.5
    Vậy Linq có phải được tạo ra để thay thế ADO.NET? Không phải, bạn có thể làm việc với Linq mà không dính đến CSDL. Linq to Sql là một phần mở rộng của Linq.

    Còn tiếp...

    Project Test có sẵn trong Visual Studio và cách sử dụng


    thuvienwinform - Test (kiểm lỗi) chương trình trước khi đưa nó ra sử dụng là một công việc hết sức quan trọng! Thường thì ta test bằng tay, như vậy khá là chậm và đôi khi chúng ta quyên mất thao tác gây ra lỗi. Để giai quyết vấn đề này, có một số phần mềm hỗ trợ chúng ta việc test như Test Complete. Tất nhiên chúng đều yêu cầu bản quyền, trong khi Visual Studio đã có sẵn cho chúng ta một cộng cụ test. Hôm nay mình xin được hướng dẫn mọi người cách sử dụng nó.
    Đầu tiên hãy thử làm vài bước kiểm tra trước khi sử dụng công cụ này đã. Vào menu Test -> Windows -> Test Explorer xem có hiện ra Test Explorer không. Nếu hiện ra rùi thì OK. Nếu không hiện ra thì làm như sau: ấn Windows + R (mở hộp thoại Run) -> nhập vào cmd -> ok


    Gõ vào:
    cd C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE  -> Enter
    devenv.exe /ResetSettings -> Enter
    Nếu vẫn không được hoặc gặp lỗi Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED)) :

    thì sử dụng lệnh devenv.exe /resetuserdata


    Sau khi Visual studio mở lên làm được như vậy là OK



    Đợi một lát cho Visual khởi động lên là xong làm lại Test -> Windows -> Test Explorer cho Test Explorer hiện lên.

    OK! Bây giờ hãy cùng tạo một project Test như sau: File -> new -> new project... ->chọn Test -> Coded UI Test Project ->OK (Như 2 hình dưới đây)



    chọn dòng bên trên


    Sau đó sẽ xuất hiện một hộp thoại nhở ờ góc phải-dưới



    OK, bây giờ muốn bắt đầu test một chương trình nào đó ta làm như sau:
    VD: mình test chương trình RightClick

    B1: Mở chương trình cần test lên
    B2: ấn vào nút Start Record (Alt + R) màu đỏ ở trong hộp thoại UIMap

    Sau đó bắt đầu test như nhập chữ, click nút, ... để test một chức năng của chương trình (nên test từng chức năng một). Sau khi test xong ấn lại nút đỏ một lần nữa (Alt + R), sau đó ấn nút Generate Code (Alt + G)  ngoài cùng của hộp thoại UIMap -> nhập thông tin cho test này


    Cuối cùng ấn nút close (x) để đóng UIMap lại.

    Bước tiếp theo vào Test -> Run -> All test -> chờ cho nó chạy xong test


    Sau khi nó chạy xong thì trong explorer sẽ có các test đã tạo:

    chuột phải vào test cần chạy -> Run Selected test


    Test nào thực hiện xong thì nó sẽ tích màu xanh vào cho, còn test nào lỗi (hoặc không thực hiện được xong thì nó sẽ tích màu đỏ)

    Chúc các bạn thành công với những chương trình hoàn thiện.s

    1/01/2014
    Đăng bởi :
    Nhãn :

    Nhận ngay 100$ cho VPS

    Mua hàng ủng hộ page

    Ủng hộ page

    Nhãn

    Code (45) Team Foundation Server (17) Database (14) News (14) product (13) toolbox (10) Linq (9) SoftDesign (8) XNA (6) API (5) Project (5) item (4)

    - Bản quyền thuộc về Thư Viện WinForm - Giao diện: Metrominimalist - Thiết kế: Johanes Djogan -