KIẾN THỨC

"Thủ thuật hóa học" cho Word
Chem4Word là công cụ chuyên hỗ trợ chèn hoặc chỉnh sửa công thức hay sơ đồ hóa học vào văn bản trực tiếp ngay từ thanh Ribbon của Word.

Những thủ thuật Windows kinh điển (phần 2)
Cho dù bạn là một người đã dùng thành thạo hệ điều hành Windows hay mới chỉ là một người mới bắt đầu làm quen với nó, thì bạn đều có thể thường xuyên sử dụng một vài thủ thuật giúp các thao tác diễn

Hướng dẫn bảo mật tuyệt đối cho folder của bạn
Có lẽ mỗi chúng ta khi sử dụng máy tính để có một thư mục (folder) lưu trữ những thông tin riêng, thông tin quan trọng của mỗi người. Tuy nhiên không phải lúc nào máy tính của mình cũng đều do một mì

DANH NGÔN

Không có con đường nào dài quá đối với kẻ bước đi thong thả, không vội vàng. Không có cái lợi nào xa xôi quá đối với những kẻ kiên nhẫn làm việc

La Bruyere
Trang chủ » Thư viện Tutorial » Kĩ thuật lập trình

Thực thi lệnh với Database và C# ( 1464 lượt xem )

thiet ke websiteThực thi lệnh với Database và C#

Ở 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 :

Code:
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.
 
Code:

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’

Code:
// 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.

Phuc Thinh Website

Thư viện Template | Website template

Template Hardware No.12
Template Hardware No.12
Template Car No.4
Template Car No.4
Template Flower No.10
Template Flower No.10
Template Wedding No.6
Template Wedding No.6
Template Travel No.1
Template Travel No.1
Template Gift No.9
Template Gift No.9
Template Education No.5
Template Education No.5
Template Food & Drink No.3
Template Food & Drink No.3
Template Computer No 11
Template Computer No 11
Template Art & Photography  No.3
Template Art & Photography No.3
Template Fashion No.10
Template Fashion No.10
Template Wedding No.1
Template Wedding No.1
«123»
Số lượt truy cập web: 1,353,557 - Trong tháng này: 310,390 - Khách truy cập hôm nay: 100 - Số người đang online: 09.Developed by Phuc Thinh