"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ì
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
Tags thiết kế website
Tên miền, Đăng ký tên miền,
thiet ke web, chuyen thiet ke web,
Thiết kế website,
chuyên thiết kế website,
tu van web,tư vấn web,
dich vu website,
dịch vụ website,
web design,
giải pháp thiết kế website,
website thương mại,
quang ba web,
quang ba website,
dịch vụ SEO,
tutorial,
thiết kế website bán hàng,
thiết kế website doanh nghiệp,
hosting,
từ khóa,
công ty thiết kế web,
Website template,
thư viện website
Thực thi lệnh với Database và C# ( 1464 lượt xem )

Ở 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