Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Trích xuất thông tin từ một CSDL (Bài viết hỏng)

  1. #1
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Smile Trích xuất thông tin từ một CSDL (Bài viết hỏng)

    Trong bài viết này, chúng ta sẽ đề cập đến vấn đề làm sao để kết nối một CSDL bất kỳ đến 1 dự án của C#. Chắc đọc đến đâu, bạn có thể ngán ngẩm và tự hỏi "chắc là khó và nhiều dòng lệnh lắm đây". Hi hi, không hề, rất đơn giản khi làm việc này, hãy làm theo từng hướng dẫn bên dưới, rồi bạn sẽ tin là mình nói đúng. Nào, chuẩn bị nha, chúng ta khởi hành.

    Bước 1: tạo 1 dự án Windows Forms, ở bước này bạn muốn đặt tên dự án của mình là gì cũng được.
    Bước 2: thêm dữ liệu nguồn vào dự án của mình
    - Đầu tiên, chọn menu Data\Show Data Sources (Shift+Alt+D) để cho hiển thị cửa sổ Data Sources
    -
    Sau khi cửa sổ Data Sources hiện ra, bạn nhấn chọn Add New Data Source để bắt đầu tiến trình thêm CSDL vào dự án của mình


    - Chọn loại dữ liệu nguồn trong Data Source Configuration Wizard : chọn Database rồi nhấn Next


    Bước 3: chọn loại nguồn dữ liệu để thêm vào dự án:
    - Nhấn New Connection



    - Cửa sổ Add Connection sẽ hiện ra, nhấn vào nút Change... để chọn loại CSDL, ở cửa sổ hiện ra tiếp theo, chọn Microsoft Access Database File nếu bạn muốn kết nối CSDL của hệ quản trị CSDL MS Access (lưu ý: nếu bạm xài SQL SERVER, hãy chọn Microsoft SQL Server Database File). Sau khi đã lựa chọn xong, nhấn OK để đồng ý.


    - Nhấn Browse để tìm tới file nguồn, ở đây là dạng file *.MDB của MS Access.
    - Sau khi chọn file nguồn xong, nếu file có chứa mật khẩu thì bạn nhập mật khẩu vào vùng "Log on to the database". Nếu không, nhấn OK để tiếp tục
    Đã được chỉnh sửa lần cuối bởi neverland87 : 06-06-2007 lúc 07:35 PM.

  2. #2
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Bước 4:Tiếp tục nhấn Next, lúc ấy sẽ có 1 hộp thoại hiện ra, bạn cứ việc nhấn OK.
    Bước 5::Chọn tên kết nối (theo hình)


    Bước 6: chọn tên bảng cần hiển thị trong DataSet. Nhắp chọn tên bảng mà bạn muốn hiển thị (theo hình). Sau đó nhấn Finish.


    Bước 7: Bây giờ, bạn đã trở lại màn hình lúc bạn vừa bắt đầu dự án. Ở bước này, trong cửa sổ Data Sources, bạn tiến hành Drag-and-Drop từng bảng vào Form chính, IDE sẽ phát sinh đoạn code dùm bạn (hic, nãy giờ chưa gõ 1 dòng code nào cả)


    Kết quả sau bước này:


    Bây giờ, bạn nhấn F5 đi.



    ^_^ Trông kết quả cũng đẹp đấy chứ. Bạn nhấn các nút mũi tên để di chuyển qua các dòng (rows), dấu + để thêm 1 dòng mới, dấu X để xóa 1 dòng bất kỳ, và nút có hình chiếc đĩa mềm dùng để sao lưu dữ liệu (nó sẽ lưu vào file nguồn được đính kèm vào dự án của bạn).

    Phù, thế là xong rồi nhé.Rất dễ dàng, không phải gõ 1 dòng code nào hết. Chúc bạn thành công!

  3. #3
    Ngày gia nhập
    04 2007
    Bài viết
    16

    hay đấy, cảm ơn nhiều, đúng là những thứ tớ đang cần, chắc là phải cần đến sự giúp đỡ của neverland nhiều lắm. Hichic

    ủa, sao tui không làm được nhỉ. báo lỗi rồi:
    "the binding handle is invalid"
    Đã được chỉnh sửa lần cuối bởi nhc1987 : 25-10-2007 lúc 09:01 PM.
    Việt Nam quang vinh muôn năm!!!!!!!!!!!!

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà nội
    Bài viết
    77

    hay lắm,nếu được thì neverland87 post thêm 1 bài về liên kết động với Database đi,chứ kết nối tĩnh như thế này sẽ rất phiền khi CT được đem sang máy khác,lúc đó lại phải set lại đường dẫn cho Database
    Sống ở trên đời cần có một TẤM LÒNG để lúc đói còn có chỗ mà nhét THỨC ĂN

  5. #5
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Trích dẫn Nguyên bản được gửi bởi thanhlv Xem bài viết
    hay lắm,nếu được thì neverland87 post thêm 1 bài về liên kết động với Database đi,chứ kết nối tĩnh như thế này sẽ rất phiền khi CT được đem sang máy khác,lúc đó lại phải set lại đường dẫn cho Database
    Ồ không, 1 bản sao của file nguồn sẽ được copy vào project của mình, mọi thay đổi mà ta làm trên form sẽ được lưu vào file này. Cái này mình thấy trong project mà anh NoBi đã từng gửi cho mình.

  6. #6
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Mặc định Trích xuất thông tin từ một CSDL (Bài viết hỏng)

    Trích dẫn Nguyên bản được gửi bởi thanhlv Xem bài viết
    vậy àh,nhưng mình vẫn ko hiểu lắm,vì mình làm bên vê bê thì nó cũng có 2 loại liên kết
    một là dùng control(của VB) để liên kết VB với Database,các thao tác liên kết hoàn toàn trên control đó và đường dẫn là cố định(nếu file database mà nằm ko đúng cái đường dẫn là CT die lun,lúc đấy phải set lại đường dẫn đến file Database hoặc phải đưa file Database vào đúng cái đường dẫn đã chỉ định trong control)
    hai là cách liên kết động,liên kết bằng code,tức là mình chỉ cần đặt file database chung với project thì dù mang cái project đấy đi đâu cũng ko phải lo lỗi kết nối đường dẫn
    Mình đã thử rồi bạn ạ, chính xác là tập tin CSDL sẽ được đính kèm vào dự án của bạn (nó nằm trong bin\debug). Bạn có thể chép dự án cho bạn mình, hoặc nếu có deploy thì nhớ đính kèm tập tin thực thi và file dữ liệu vào bộ cài đặt nhé. Và mình cũng đã thử, khi trong CSDL, giữa các bảng có mối quan hệ thì khi bạn thử xóa 1 dòng trong chương trình của mình, tức khắc sẽ phát sinh 1 ngoại lệ báo cho bạn biết bảng bạn vừa xóa có quan hệ với bảng khác trong file CSDL.

  7. #7
    Ngày gia nhập
    06 2007
    Bài viết
    7

    bạn neverland ơi, cho mình hỏi nếu muốn hiện table name của tất cả table trong file access đó ra form giống như zầy nè

    thì dùng hàm gì zậy bạn?
    mình làm theo chỉ dẫn của bạn là vào menu Data nhưng lại không thấy mục Show Data Sources mà chỉ có 2 mục là Generate DatasetPreview Dataset đều bị mờ, thế là sao bạn, mình đang xài visual studio 2003
    Đã được chỉnh sửa lần cuối bởi kid07 : 21-06-2007 lúc 10:32 PM.

  8. #8
    Ngày gia nhập
    06 2007
    Bài viết
    7

    mình tìm được 1 đoạn code dùng hiển thị tất cả các bảng (trừ các bảng hệ thống) trong 1 file .mdb bất kỳ mà không bị hạn chế quyền, code này không phải của mình :
    Code:
    private void getTablesList(string p)
            {
                System.Data.Common.DbProviderFactory factory =  System.Data.Common.DbProviderFactories.GetFactory("System.Data.OleDb");
                DataTable userTables = null;
                using (System.Data.Common.DbConnection connection = factory.CreateConnection())
                {
                    connection.ConnectionString = p;
                    string[] restrictions = new string[4];
                    restrictions[3] = "Table";
                    connection.Open();
                    userTables = connection.GetSchema("Tables", restrictions);
                }
                for (int i = 0; i < userTables.Rows.Count; i++)
                {
                    cboSamples.Items.Insert(i, userTables.Rows[i][2].ToString());
                }
            }
    với:
    "string p" là chuỗi kết nối đến file mdb chẳng hạn như:
    p="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txtPath.Text;
    "txtPath.Text" là đối tượng textboxt chứa đường dẫn của file mdb
    "cboSamples" là combobox để show danh sách các bảng lấy được

    mấy cái râu ria còn lại mình cũng không rõ, các bạn ngâm cứu tiếp nha
    Đã được chỉnh sửa lần cuối bởi nhc1987 : 25-10-2007 lúc 09:02 PM.

  9. #9
    Ngày gia nhập
    10 2007
    Bài viết
    13

    mấy cái ảnh bị die hết rồi nha . Xem lại dùm

  10. #10
    Ngày gia nhập
    12 2007
    Bài viết
    4

    mấy cái ảnh bị die rồi Anh ơi

Các đề tài tương tự

  1. MS SQL với C# cách truy xuất CSDL với 1 triệu bản ghi
    Gửi bởi mapsaker trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 2
    Bài viết cuối: 07-10-2013, 08:23 PM
  2. [Help]: xuất CSDL ra textbox.
    Gửi bởi dangminhntbs trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 1
    Bài viết cuối: 19-06-2013, 05:13 PM
  3. Viết ứng dụng dùng csdl DB2
    Gửi bởi tuanvi261 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 26-05-2013, 03:57 PM
  4. Tốc độ truy xuất chương trình có CSDL?
    Gửi bởi nguyenletri trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 13-04-2010, 10:29 AM
  5. Cần tìm hiểu về truy xuất CSDL FOX PRO với C#
    Gửi bởi webshot trong diễn đàn Thắc mắc đại cương Database & Reporting
    Trả lời: 1
    Bài viết cuối: 08-03-2009, 02:17 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn