Thực thi lệnh với Database và C#
Số trang: 12
Loại file: doc
Dung lượng: 99.50 KB
Lượt xem: 12
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
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 :
Nội dung trích xuất từ tài liệu:
Thực thi lệnh với Database và C# Thực thi lệnh với Database và C#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 trongkế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ànhmệ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êmmộ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ốinà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ánmệ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ốimà 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ạtvà 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ôngthì 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ìnhtrạ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 trongkhố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ênnhâ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ệnhvào kết nối ngay từ đầu và rút ngắn lại codeCode:SqlCommand cmd = conn.CreateCommand();Tương đương với 2 dòng codecode:SqlCommand cmd = new SqlCommand();cmd.Connection = conn;Bạn đã tạo được đối tượng nắm giữ mệnh lệnh và gán được vào kết nối, bây giờphải viết mệnh lệnh cho đối tượng.Ta dùng thuộc tình ‘CommandObject.CommandText’ để tạo một lệnh cần thực thi vớicơ sở dữ liệu.Bạn vẫn dùng code ở trên nhưng chỉ thay đổi đi phần code trong khối ‘try..catch’ bằngphần code dưới đây nhé :Code: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 co ...
Nội dung trích xuất từ tài liệu:
Thực thi lệnh với Database và C# Thực thi lệnh với Database và C#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 trongkế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ànhmệ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êmmộ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ốinà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ánmệ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ốimà 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ạtvà 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ôngthì 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ìnhtrạ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 trongkhố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ênnhâ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ệnhvào kết nối ngay từ đầu và rút ngắn lại codeCode:SqlCommand cmd = conn.CreateCommand();Tương đương với 2 dòng codecode:SqlCommand cmd = new SqlCommand();cmd.Connection = conn;Bạn đã tạo được đối tượng nắm giữ mệnh lệnh và gán được vào kết nối, bây giờphải viết mệnh lệnh cho đối tượng.Ta dùng thuộc tình ‘CommandObject.CommandText’ để tạo một lệnh cần thực thi vớicơ sở dữ liệu.Bạn vẫn dùng code ở trên nhưng chỉ thay đổi đi phần code trong khối ‘try..catch’ bằngphần code dưới đây nhé :Code: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 co ...
Tìm kiếm theo từ khóa liên quan:
thủ thuật lập trình lập trình căn bản lập trình C++ SqlCommand cách tạo một mệnh lệnhTài liệu liên quan:
-
114 trang 245 2 0
-
80 trang 225 0 0
-
Thủ thuật giúp giải phóng dung lượng ổ cứng
4 trang 217 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 212 0 0 -
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 188 0 0 -
Hướng dẫn lập trình với Android part 4
5 trang 156 0 0 -
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 135 0 0 -
142 trang 130 0 0
-
124 trang 115 3 0
-
150 trang 105 0 0