ADO.NET - ADO.NET SqlCommand
Lớp ADO.NET SqlCommand
Lớp này thường được sử dụng để thực thi các câu lệnh SQL. Nó là một lớp sealed (niêm phong) nên không thể kế thừa.
SqlCommand
public sealed class SqlCommand : System.Data.Common.DbCommand, ICloneable, IDisposable
Lớp này cung cấp các phương thức thiết lập sau:
Constructor | Description |
---|---|
SqlCommand() | Đươc sử dụng tạo một đối tượng mới. |
SqlCommand(String) | Đươc sử dụng tạo một đối tượng mới có một chuỗi tham số. |
SqlCommand(String, SqlConnection) | Đươc sử dụng tạo một đối tượng mới có hai tham số. tham số đầu tiên là chuỗi truy vấn, tham số thứ 2 là chuỗi kết nối. |
SqlCommand(String, SqlConnection, SqlTransaction) | Đươc sử dụng tạo một đối tượng mới có ba tham số. tham số đầu tiên là chuỗi truy vấn, tham số thứ 2 là chuỗi kết nối, tham số thứ 3 là một transaction. |
SqlCommand(String, SqlConnection, SqlTransaction, SqlCommandColumnEncryptionSetting) | Đươc sử dụng tạo một đối tượng mới có : command text, connection, transaction, and encryption setting. |
Các phương thức trong SQLCommand
Phương thức | Mô tả |
---|---|
BeginExecuteNonQuery() | được sử dụng để bắt đầu thực thi không đồng bộ câu lệnh SQL được khai báo bởi SqlCommand . |
Cancel() | Hủy thực thi trong đối tượng SqlCommand. |
Clone() | Tạo ra một đối tượng mới từ đối tượng hiện hành. |
CreateParameter() | Tạo một đối tượng mới SqlParameter. |
ExecuteReader() |
Trả về đối tượng SqlDataReader - thường dùng cho việc đọc kết quả trả về của câu lệnh SQL là 1 tập hợp gồm nhiều hàng, nhiều cột - đối tượng này sẽ được giới thiệu kỹ hơn trong phần sau. |
ExecuteNonQuery() |
Trả về số hàng bị ảnh hưởng bởi câu lệnh SQL. Thường được sử dụng với các câu lệnh không trả về dữ liệu như Insert, delete, update,... |
ExecuteXmlReader() |
Trả về đối tượng XmlReader - thường dùng để đọc kết quả trả về của câu lệnh SQL được lưu trữ ở dạng XML. |
ExecuteScalar() |
Trả về hàng đầu tiên, cột đầu tiên của (một tập hợp) kết quả, các hàng/cột còn lại (nếu có) sẽ bị bỏ qua. Thường được sử dụng với các câu lệnh chỉ trả về 1 hàng, 1 cột kết quả (vd đếm số lượng nhân viên trong công ty). |
Prepare() | It is used to create a prepared version of the command by using the instance of SQL Server. |
ResetCommandTimeout() |
Được sử dụng để đặt lại thuộc tính CommandTimeout về giá trị mặc định. |
Ví dụ
Trong ví dụ này, chúng ta dùng đối tượng SqlCommand thự thi câu lệnh SQL.
// Program.cs
using System;
using System.Data.SqlClient;
namespace AdoNetConsoleApplication
{
class Program
{
static void Main(string[] args)
{
new Program().CreateTable();
}
public void CreateTable()
{
SqlConnection con = null;
try
{
// Creating Connection
con = new SqlConnection("data source=.; database=student; integrated security=SSPI");
// writing sql query
SqlCommand cm = new SqlCommand("select * from student", con);
// Opening Connection
con.Open();
// Executing the SQL query
SqlDataReader sdr = cm.ExecuteReader();
while (sdr.Read())
{
Console.WriteLine(sdr["name"]+" "+ sdr["email"]);
}
}
catch (Exception e)
{
Console.WriteLine("OOPs, something went wrong." + e);
}
// Closing the connection
finally
{
con.Close();
}
}
}
}
Kết quả:
Xuất tên và email sinh viên