Tạo đối tượng người tiêu dùng SqlCommand vào C# nhằm truy vấn vấn với cập nhật cho tới CSDL Squốc lộ Server, thực hiện lệnh cùng với các cách làm ExecuteNonQuery, ExecuteScalar, ExecuteReader


Lớp SqlCommvà - Khởi sinh sản đối tượng SqlCommand

Lớp SqlCommand xúc tiến từ bỏ DbCommvà có thể chấp nhận được tạo nên đối tượng người tiêu dùng mà lại tự đó có thể thực hiện các lệnh SQL liên quan với MS Squốc lộ Server như những mệnh đề UPDATE|INSERT|CREATE TABLE|SELECT ...

Bạn đang xem: Executescalar là gì

cũng như cho phép thực hành các hàm, những stored procedure của Database.

Crúc ý: Nếu sử dụng MySquốc lộ thì đối tượng thực thi DbCommvà là MySqlCommvà, gồm phương pháp áp dụng một bí quyết tựa như.

Để mau lẹ có một MS SQL Server kèm dữ liệu chủng loại, hãy cần sử dụng Docker với thực hiệntheo phía dẫn: MS Squốc lộ Server bên trên Docker

Để tạo thành cùng thực hành được SqlCommand thì cần thiết lập đến nó câu lệnh Squốc lộ (truy tìm vấn), cùng các tsi số cho lệnh SQL đó, mặt khác cần tùy chỉnh thiết lập công bố liên kết đến Squốc lộ Server SqlConnection vào đối tượng SqlCommvà.

Xem thêm: Kingpost Là Gì - King Post Là Gì

lấy một ví dụ, khởi chế tạo ra SqlCommvà - tùy chỉnh tức thì câu query cùng kết nối

var cmd = new SqlCommand(queryString, connection);Có thể khởi tạo SqlCommand tiếp đến bắt đầu cấu hình thiết lập những thông số (câu truy tìm vấn, kết nối cùng các tsay mê số ...) rồi kế tiếp thực hiện SqlCommvà (thực hiện truy vấn vấn SQL)


"Data Source=localhost,1433; Initial Catalog=xtlab; User ID=SA;Password=Password123"; var connection = new SqlConnection(sqlconnectstring); connection.Open(); // Tạo đối tượng người dùng DbCommand using var command = new SqlCommand(); commvà.Connection = connection; // select, insert, update, delete commvà.CommandText = "Mệnh đề truy vấn SQL"; // Thực hiện các câu truy vấn vấn, đọc công dụng // ... // ... connection.Close(); Từ đối tượng SqlConnection cũng có thể sản xuất ngay đối tượng người sử dụng SqlComm& thêm cùng với kết nối đó:

using (var cmd = connection.CreateCommand()) cmd.CommandText = queryString; // thực hiện lệnh ... bởi vậy để thi hành lệnh Squốc lộ cùng với SqlComm&, thì cần phải có một liên kết trước (SqlConnection), rồi tạo ra đối tượng người tiêu dùng SqlCommvà, gán mang lại nó kết nối, câu lệnh Squốc lộ kế tiếp bắt đầu thực hiện được. Để thi hành, Gọi một trong số phương thức nhỏng ExecuteScalar, ExecuteNonQuery, ExecuteReader ... trình bày sinh hoạt mục phía dưới

Thiết lập các tđắm đuối số cho SqlCommmand

Các câu lệnh SQL rất có thể viết chứa thương hiệu tđê mê số vào nó, kế tiếp cực hiếm thực của tmê man số này được SqlComm& gán gắng vào để sở hữu mệnh đề Squốc lộ đích thực. Tham số trong chuỗi câu lệnh Squốc lộ cam kết hiệu là
tenthamso
(ghi nhớ gồm cam kết hiệu
), ví dụ:

string queryString = "SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc where DanhmucID >
DanhmucID"; Thì tất cả một tyêu thích số thương hiệu
DanhmucID: Giá trị đích thực của tham mê số này thay thế bởi quý giá của của một đối tượng người sử dụng vẻ bên ngoài SqlParameter. Tập thích hợp những tmê say số này lưu giữ vào nằm trong tính Parameters của SqlCommand

commvà.Parameters.AddWithValue("
Danhmuc của câu truy nã vấn, kết quảcâu truy tìm vấn là

"SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc where DanhmucID > 5"Trong khi rất có thể khởi chế tạo ra một SqlParameter cùng cấp dưỡng, ví dụ:

var danhmuc = new SqlParameter("
DanhmucID", 5); // Tạo ttê mê sốcommvà.Parameters.Add(danhmuc); // Thêm vào SqlCommandvar danhmuc = new SqlParameter("
DanhmucID", 5); // Tạo tmê man sốcommand.Parameters.Add(danhmuc); // Thêm vào SqlCommandHoặc cụ thể hơn như

// Khởi sinh sản bao gồm chỉ định mẫu mã dữ liệuvar danhmuc = new SqlParameter("
DanhmucID", SqlDbType.Int);// Gán gái trị vào tđắm đuối sốdanhmuc.Value = 5;// Thêm vào SqlCommandcommand.Parameters.Add(danhmuc);

Các cách thực hiện SqlCommvà cùng mang hiệu quả tróc nã vấn

Có các thủ tục khác biệt nhằm thực hiện SqlCommand tùy thuộc vào ngữ chình ảnh cùng với mục đích khác nhau, bao gồm gồm những thủ tục như:

ExecuteNonQuery() thi hành truy tìm vấn - không yêu cầu trả về tài liệu gì, cân xứng triển khai những truy tìm vấn nhỏng Update, Delete ... ExecuteReader() thi hành lệnh - trả về đối tượng người sử dụng giao diện IDataReader như SqlDataReader, từ bỏ kia hiểu được dữ liệu trả về ExecuteScalar() thì hành với trả về một quý hiếm nhất - ngơi nghỉ bậc nhất tiên, cột thứ nhất

Sau trên đây áp dụng Hotline các hàm trên

Thi hành SqlCommand bằng cách tiến hành ExecuteScalar()

Nếu thi hành SqlCommvà bằng cách thức ExecuteScalar thì nó vẫn thi hành câu lệnh SQL cùng trả về 1 giá trị là cột thứ nhất của mẫu trước tiên. (Cho cho dù câu lệnh SQL thực tiễn trả về tập hiệu quả những cái những cột). Lưu ý: giá trị bao gồm độ dài buổi tối đa 2033 cam kết tự

Ví dụ sau sẽ chèn một mẫu new vào bảng với trả về quý hiếm định danh của dòng bắt đầu chèn vào (ID). Tại đây ckém một Shipper mới biết tin HoTen và Sodienthoai vệ vào bảng Shippers

// Tạo đối tượng DbCommandusing var commvà = new SqlCommand();command.Connection = connection;// Câu truy tìm vấn gồm: cnhát dữ liệu vào và lấy định danh(Primary key) bắt đầu cnhát vàostring queryString =
Sodienthoai); SELECT CAST(scope_identity() AS int)";commvà.CommandText = queryString;comm&.Parameters.AddWithValue("
Sodienthoai", 123456);var ShipperID = command.ExecuteScalar(); // Thi hành Squốc lộ trả về quý hiếm đầu tiênConsole.WriteLine($"Thêm new Shipper, ID = ShipperID");

Thi hành với ExecuteNonQuery

Thi hành SqlComm& bởi cách thức ExecuteNonQuery nó chỉ trả về công dụng là số chiếc tài liệu bị ảnh hưởng (số dòng xóa, số cái update ...). Thường cần sử dụng giải pháp này nhằm thực hiện những truy tìm vấn UPDATE, INSERT, DELETE. Tuy nhiên, giả dụ là gọi Procedure thì có kết quả trả về.

// Tạo kết nốivar sqlconnectstring =
"Data Source=localhost,1433; Initial Catalog=xtlab; User ID=SA;Password=Password123";var connection = new SqlConnection(sqlconnectstring);connection.Open();// Tạo đối tượng người tiêu dùng SqlCommandusing var commvà = new SqlCommand();command.Connection = connection;// Câu truy hỏi vấn gồm: cnhát dữ liệu vào và rước định danh(Primary key) bắt đầu ckém vàostring queryString =
ShipperID", 4);var rows_affected = commvà.ExecuteNonQuery();Console.WriteLine($"Số dòng tác động = rows_affected");connection.Close();

Thi hành với ExecuteReader

Thi hành SqlCommvà với cách làm thì nó sẽ khởi tạo ra đối tượng SqlDataReader được msinh hoạt sẵn, trường đoản cú đối tượng đó giúp gọi từng dòng tác dụng trả về.

Một số cách làm trong SqlDataReader

SqlDataReader.HasRows() cho biết thêm gồm loại dữ liệu như thế nào không SqlDataReader.Read() nạp dữ liệu mẫu tiếp sau, nếu như trả về true là bao gồm chiếc tài liệu nạp về thành công xuất sắc, giả dụ false là đã hết tài liệu hấp thụ về. Sau Lúc Gọi phương thơm thực này, thì những cột của loại có thể đọc bởi các tân oán tử , hoặc các hàm hiểu dữ liệu như .GetInt32(cột), .GetString(cột) ... SqlDataReader.Close() đóng góp Reader sau thời điểm phát âm chấm dứt tài liệu

Các câu lệnh SELECT hoàn toàn có thể dùng cách náy

readCate.cs

// Tạo kết nốivar sqlconnectstring =
"Data Source=localhost,1433; Initial Catalog=xtlab; User ID=SA;Password=Password123";var connection = new SqlConnection(sqlconnectstring);connection.Open();// Tạo đối tượng SqlCommandusing var command = new SqlCommand();commvà.Connection = connection;// Câu tầm nã vấn mang danh mụcstring queryString =
"SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc";commvà.CommandText = queryString;// Thi hành truy nã vấn trả về SqlReaderusing var reader = comm&.ExecuteReader();// Kiểm tra gồm tác dụng trả vềif (reader.HasRows) // Đọc từng cái tập kết quả while (reader.Read()) var danhmuc = reader.GetInt32(0); var tendanhmuc = reader<"TenDanhMuc">; var mota = reader.GetString("Mota"); Console.WriteLine($"danhmuc, 4 - tendanhmuc, -20 - mota"); else Console.WriteLine("Không bao gồm dữ liệu trả về");connection.Close(); Ngoài ra Khi đã có được đối tượng người tiêu dùng SqlDataReader, hoàn toàn có thể lấy toàn bộ kết quả trả về của SqlCommand chuyển vào DataTable

//...SqlComm& comm& = new SqlCommand("SELECT DanhmucID, TenDanhMuc FROM Danhmuc;", connection);using (SqlDataReader reader = comm&.ExecuteReader()) DataTable myTable = new DataTable(); if (reader.HasRows) myTable.Load(reader); else //No rows //...

ExecuteXmlReader

Thi hành SqlCommand cùng với phương thức thì nó sẽ tạo ra đối tượng người sử dụng System.Xml.XmlReader, từ đối tượng người tiêu dùng đó góp hiểu từng dòng kết quả trả về theo kết cấu XML.

Gọi Procedure của DB

Mặc định SqlComm& đã coi câu chữ trong ở trong tính CommandText là câu lệnh Squốc lộ bởi vì nó vẫn tùy chỉnh CommandType bằng CommandType.Text (xem ví dụ trên). Nếu ước ao điện thoại tư vấn mang lại Procedure thì tùy chỉnh thiết lập nó bằng CommandType.StoredProcedure.

Quý Khách rất có thể chạy câu lệnh T-SQL để tạo ra một StoredProcedure mẫu có tên gethàng hóa với cùng một tham số
idENDThực hành call thủ tục SQL Server

callProcedure.cs

//...public static void CallStoredProcedure() string sqlconnectStr = "Data Source=localhost,1433;Initial Catalog=xtlab;User ID=SA;Password=Password123"; SqlConnection connection = new SqlConnection(sqlconnectStr); connection.Open(); // Thi hành giấy tờ thủ tục PROCEDURE .(
id int) trong MS SQL Server SqlCommvà cmd = new SqlCommand("getproduct", connection); cmd.CommandType = CommandType.StoredProcedure; // Tmê mẩn số của procedure cmd.Parameters.Add( new SqlParameter() ParameterName = "
id", SqlDbType = SqlDbType.Int, Value = 10 ); // Đọc hiệu quả trả về using (SqlDataReader reader = cmd.ExecuteReader()) while (reader.Read()) var ten = reader<"TenSanpham">; var gia = reader<"Gia">; Console.WriteLine($"ten gia"); connection.Close();//.. Chụ ý, các cách thức của thi hành của SqlCommvà đều sở hữu cách tiến hành bất đồng điệu tương ứng như ExecuteNonQueryAsync(), ExecuteReaderAsync() ... để ham mê thì vận dụng chuyên môn async, kể những SqlDataReader cùng với ReadAsync()


SqlCommandTsay mê số Parameters của SqlCommandNhững cách thức thực hiện SqlCommandExecuteScalarExecuteNonQueryExecuteReaderExecuteXmlReaderĐiện thoại tư vấn procedure
*

(ADO.NET) DataAdapter DataSet và DataTable tò mò và sử dụng (ASP.NET Chip Core MVC) Triển knhì vận dụng ASPhường.NET bên trên Server Linux với Kestrel Apabịt Nginx (ASPhường.NET Core MVC) Giới thiệu một trong những admin template cùng tích thích hợp SB Admin (ASP..NET Chip Core MVC) Tích hòa hợp trình thống trị file vào website (ASPhường.NET Core) Sử dụng lý lẽ LibMan mang tlỗi viện client-side (ADO.NET) Giới thiệu abởi vì.net cùng kết nối Squốc lộ Server với SqlConnection
Giới thiệuPrivacyTừ điển Anh - ViệtChạy SQLRegExpCubic-bezierUnix timestampKý trường đoản cú HTMLcalories, chỉ số BMRchỉ số kân hận khung người BMITạo QR CodeLịch vạn niên Liên hệ RSS

Đây là blog cá nhân, tôi ghi chép cùng chia sẻ phần lớn gì tôi học được ở chỗ này về kỹ năng lập trình PHP.., Java, JavaScript, Android, C# ... cùng những kỹ năng technology khácDeveloped by infobandarpkr.com