Trang chủĐăng kýĐăng nhập Cộng đồng tin học
Thứ 3, 2024-05-07, 0:18 AM
Khung đăng nhập

Khung tán gẫu
Xóm 'bà Tám'

http://congdongtinhoc.net
CHUYÊN TRANG GAME ONLINE GIẢI TRÍ//lehung-system.ucoz.net/stuff/

Thống kê diễn đàn
Bài viết mới nhất Trang chủ cập nhật Top 10 thành viên tích cực 10 Thành viên mới nhất
  • Quạt Hướng Trục
  • vào ucoz.com thiết kế web không hiểu sao...
  • Sothink DHTMLMenu 9.2 Build 90326
  • cho em quảng cáo cái
  • BIDV triển khai gói 10.000 tỷ đồng cho v...
  • Phượng Đã Nở Ngoài Hiên
  • Ngựa Ô Thương Nhớ
  • Những mẩu chuyện vui
  • 1001 cách biến "sim rác" thành...
  • Windows XP Media Center Edition 2008 - S...
  • Hướng dẫn chỉnh sửa dữ liệu trong form m...
  • 15 điều người dùng máy tính nên biết
  • Choáng vì "sâu" mới phát tán qua email
  • Giấu bớt những thành phần Control Panel ...
  • Thảo luận về IFrame Injection Attacks
  • Miễn phí bản quyền Ashampoo Anti-Malware...
  • Trải nghiệm với Camtasia Studio 7
  • 10 kỹ năng IT ‘hot’ của năm 2011
  • Intel công bố bộ vi xử lý Hệ thống trên ...
  • Kho phần mềm dành cho Android
  • Hung@info
  • thangbom
  • Hung@webmater
  • hebeo
  • giodaingan
  • david15
  • whitecat
  • luutruthongtin
  • systemfan_12
  • sha66b5cates0428
  • amir2x4
  • taiwindows075
  • kholuutru
  • shahmeerolivedigital9
  • ysg06363100
  • hetoxe6474
  • rootanalysisusa
  • memory_gift
  • systemfan_12
  • quatcongnghiep_saigon


  • [ Tổng hợp bài mới · Tổng số thành viên · Nội qui chung · Tìm kiếm bài viết · RSS ]
    • Page 1 of 1
    • 1
    Diễn đàn » Lập Trình » C/C++/C# » Thực thi lệnh với Database và C#
    Thực thi lệnh với Database và C#
    Hung@infoDate: Thứ 2, 2009-05-25, 11:30 PM | Bài viết # 1
    Trung úy
    Nhóm: Quản trị viên
    Bài viết: 994
    Uy tín: 10
    Hiện tại: Offline
    Ở bài viết này mình sẽ hướng dẫn các bạn cách tạo một mệnh lệnh (command) và thực thi trên cơ sở dữ liệu (database).
    Tạo một mệnh lệnh (CREATING A COMMAND)


    Có rất nhiều cách ngoài cách sử dụng SqlCommand nhưng mình sẽ dùng cách này để làm ví dụ vì nó được cung cấp tốt nhất trong việc liên kết với cơ sở dữ liệu SQL.

    Mở Visual C# chọn Console Application và dùng thử code sau để phân tích :

    using System;
    using System.Data;
    using System.Data.SqlClient;

    class MenhLenh
    {
    public static void Main()
    {
    // tạo một kết nối
    SqlConnection conn = new SqlConnection(@"Server = .\SQLEXPRESS;
    Integrated Security = True;
    Database = Northwind");
    // tạo một đối tượng giữ lệnh cần thực thi
    SqlCommand cmd = new SqlCommand();
    Console.WriteLine("Command created.");
    try
    {
    // mở kết nối
    conn.Open();
    }
    catch (SqlException e)
    {
    Console.WriteLine(e.ToString());
    }
    finally
    {
    // đóng kết nối
    conn.Close();
    Console.WriteLine("Connection Closed.");
    }
    }
    }

    Ở đây thông qua lớp ‘SqlCommand’ mình tạo một đối tượng để nắm giữ thông tin về lệnh. Sau khi tạo xong thì thông báo ra Console “Command created.” Chương trình về cơ bản là vậy rất đơn giản dễ hiểu. Đó là cách tạo đối tượng nắm giữ mệnh lệnh. Mệnh lệnh tạo ra chỉ có tác dụng KHI VÀ CHỈ KHI nó được chỉ định thực thi trong kết nối nào. Vì vậy phải cho nó đi kèm với một kết nối tồn tại để tạo và thi hành mệnh lệnh được viết ra.

    Ví dụ sau mình sẽ minh họa các gán mệnh lệnh vào một kết nối.

    using System;
    using System.Data;
    using System.Data.SqlClient;

    class MenhLenh
    {
    public static void Main()
    {
    // tạo một kết nối
    SqlConnection conn = new SqlConnection(@"Server = .\SQLEXPRESS;
    Integrated Security = True;
    Database = Northwind");
    // tạo một đối tượng giữ lệnh cần thực thi
    SqlCommand cmd = new SqlCommand();
    Console.WriteLine("Command created.");
    try
    {
    // mở kết nối
    conn.Open();

    // gán mệnh lệnh vào kết nối
    cmd.Connection = conn;
    Console.WriteLine("Connected command to connection !");
    }
    catch (SqlException e)
    {
    Console.WriteLine(e.ToString());
    }
    finally
    {
    // đóng kết nối
    conn.Close();
    Console.WriteLine("Connection Closed.");
    }
    }
    }

    Bạn dễ thấy ví dụ này cũng chính là ví dụ ban đầu nhưng mình chỉ có thay đổi thêm một chút trong khối lệnh ‘try’

    // gán mệnh lệnh vào kết nối
    cmd.Connection = conn;
    Console.WriteLine("Connected command to connection !");

    Sau khi ở trên mình đã tạo ra một kết nối tới cơ sở dữ liệu và một đối tượng nắm giữ mệnh lệnh thi hành thì bên dướ mình thử gán mệnh lệnh với kết nối.

    Trong đối tượng của mệnh lệnh có một thuộc tính (properties) để gán vào một kết nối nào đó :

    CommandObject.Connection = ConnectionObject;

    Như ở trên thì sau khi gán kết nối xong thì Console sẽ thông báo ra kết quả là gán mệnh lệnh vào kết nối thành công.
    Câu hỏi đặt ra ở đây là : Tại sao không gán kết nối ngay khi tạo ra đối tượng kết nối mà phải cho vào khối ‘try..catch..finally’ làm cái gì ?

    Câu trả lời rất dễ hiểu: Bạn thử nghĩ xem sau khi bạn tạo kết nối thì muốn kích hoạt và kiểm tra kết nối có tốt hay không thì phải ném vào trong khối ‘try..catch’. Giả sử mà bạn khai báo gán mệnh lệnh ở ngay trước khối ‘try..catch’ và kết nối thành công thì không có lỗi gì cả. Nhưng trong trường hợp nếu có lỗi biến cố bất ngờ xảy ra thì khi gán mệnh lệnh vào kết nối sẽ có lỗi và chương trình sẽ ngưng hoạt động và ở tình trạng treo mà vẫn tiêu thụ tài nguyên máy, rất lãng phí. Vì vậy mà tốt nhất gán trong khối ‘try..catch’ sau khi mở kết nối để gặp lỗi thì ta có thể biết được lỗi và nguyên nhân gây lỗi và sửa (debug).Giải thích thế này không biết có hiểu không !

    Tuy nhiên nếu bạn chắc chắn là kết nối đảm bảo tốt thì bạn có thể gán mệnh lệnh vào kết nối ngay từ đầu và rút ngắn lại code.


    --== Cộng đồng tin học ==--
     
    Diễn đàn » Lập Trình » C/C++/C# » Thực thi lệnh với Database và C#
    • Page 1 of 1
    • 1
    Search:


      Copyright Cộng đồng tin học © 2024