“New 2022″ Executescalar Là Gì ? Sqlcommand Truy Vấn Và Cập Nhật Dữ Liệu – Báo mới mỗi ngày

Tạo đối tượng người dùng SqlCommand trong C # để truy vấn và update vào cơ sở tài liệu SQL Server, triển khai những lệnh với những phương pháp ExecuteNonQuery, ExecuteScalar, ExecuteReader

Lớp SqlCommand – Khởi tạo đối tượng SqlCommand

Lớp SqlCommand được triển khai từ DbCommand cho phép tạo các đối tượng mà từ đó các lệnh có thể được thực thi. SQL tương tác với MS SQL Server dưới dạng mệnh đề CẬP NHẬT | CHÈN | TẠO BẢNG | CHỌN…

Đang xem : Executescalar là gì

cũng như cho phép thực thi các chức năng, thủ tục lưu trữ của Cơ sở dữ liệu.

Lưu ý : Nếu sử dụng MySQL, đối tượng người tiêu dùng tiến hành DbCommand là MySqlCommand, với cách sử dụng tựa như .
Để nhanh gọn có một MS SQL Server với tài liệu mẫu, hãy sử dụng Docker và làm theo hướng dẫn : MS SQL Server trên Docker

Để tạo và thực thi SqlCommand thì bạn cần thiết lập nó bằng câu lệnh SQL (truy vấn) và các tham số cho lệnh SQL đó, đồng thời thiết lập thông tin kết nối tới SQL Server SqlConnection vào đối tượng SqlCommand.

Xem thêm : Mụn Ở Cổ Và Lưng : Trị Mụn Ở Lưng Là Gì ? Làm thế nào để khắc phục ?
Ví dụ : khởi tạo SqlCommand – thiết lập truy vấn và liên kết ngay lập tức
var cmd = new SqlCommand ( queryString, connection ) ; SqlCommand hoàn toàn có thể được khởi tạo, sau đó thiết lập những tham số ( truy vấn, liên kết và những tham số … ) và sau đó thực thi SqlCommand ( triển khai truy vấn SQL )

// Tạo kết nối var sqlconnectstring =
“Nguồn dữ liệu = localhost, 1433; Danh mục ban đầu = xtlab; ID người dùng = SA; Mật khẩu = Mật khẩu123 ”; var connection = new SqlConnection (sqlconnectstring); kết nối.Open (); // Tạo đối tượng DbCommand bằng lệnh var = new SqlCommand (); command.Connection = kết nối; // chọn, chèn, cập nhật, xóa lệnh.CommandText = “Mệnh đề truy vấn SQL”; // Thực hiện truy vấn, đọc kết quả //… //… connection.Close (); Từ đối tượng SqlConnection, bạn cũng có thể tạo ngay một đối tượng SqlCommand được liên kết với kết nối đó:

using ( var cmd = connection. CreateCommand ( ) ) { cmd. CommandText = queryString ; / / thực thi lệnh … } Vì vậy, để triển khai lệnh SQL với SqlCommand, thứ nhất bạn cần có một liên kết ( SqlConnection ), sau đó tạo đối tượng người tiêu dùng SqlCommand, gán cho nó liên kết, câu lệnh SQL rồi thực thi. Để thực thi, hãy gọi một trong những phương pháp như ExecuteScalar, ExecuteNonQuery, ExecuteReader … được trình diễn trong phần bên dưới .

Đặt thông số cho SqlCommmand

Các câu lệnh SQL có thể ghi được chứa tên tham số trong đó, giá trị thực của tham số này được gán thay thế bởi SqlCommand để lấy mệnh đề SQL thực tế. Tham số trong chuỗi câu lệnh SQL được biểu thị bằng
Tenthamso
(nhớ có ký hiệu
), Ví dụ:

string queryString = “CHỌN DanhmucID, TenDanhMuc, MoTa TỪ Danhmuc trong đó DanhmucID>
DanhmucID ”; Sau đó, có một tham số tên
DanhmucID: Giá trị thực của tham số này được thay thế bằng giá trị của một đối tượng kiểu SqlParameter. Bộ thông số này được lưu trữ trong thuộc tính Thông số thuộc về SqlCommand

command.Parameters.AddWithValue (“
Danh sách truy vấn, kết quả truy vấn là

“ CHỌN DanhmucID, TenDanhMuc, MoTa TỪ Danhmuc trong đó DanhmucID > 5 ″ Ngoài ra, hoàn toàn có thể khởi tạo SqlParameter và thêm, ví dụ :

var list = new SqlParameter (“
DanhmucID ”, 5); // Tạo lệnh tham số.Parameters.Add (nounmuc); // Thêm SqlCommandvar list = new SqlParameter (“
DanhmucID ”, 5); // Tạo lệnh tham số.Parameters.Add (nounmuc); // Thêm SqlCommand Hoặc các chi tiết khác như

// Khởi tạo với kiểu dữ liệu được chỉ định var list = new SqlParameter (“
DanhmucID “, SqlDbType.Int); // Gán giá trị cho tham sốdanhmuc.Value = 5; // Thêm SqlCommandcommand.Parameters.Add (danhmuc);

Các cách thực thi SqlCommand và nhận kết quả truy vấn

Có những phương pháp khác nhau để thực thi SqlCommand tùy thuộc vào ngữ cảnh cho những mục tiêu khác nhau, gồm có những phương pháp như :
ExecuteNonQuery ( ) thực thi truy vấn – không cần trả về bất kỳ dữ liệu nào, tương thích để thực thi những truy vấn như Cập nhật, Xóa … ExecuteReader ( ) thực thi lệnh – trả về một đối tượng người tiêu dùng giao diện IDataReader như SqlDataReader, từ đó tài liệu hoàn toàn có thể được đọc Nếu ExecuteScalar ( ) được trả về, thực thi và trả về một giá trị duy nhất – hàng tiên phong, cột tiên phong
Điều sau vận dụng cho việc gọi những hàm trên

Thực thi SqlCommand với phương thức ExecuteScalar ()

Nếu thực thi SqlCommand bằng phương thức ExecuteScalar, nó sẽ thực thi câu lệnh SQL và trả về một giá trị là cột đầu tiên của hàng đầu tiên. (Liệu câu lệnh SQL thực tế có trả về tập kết quả nhiều hàng, nhiều cột hay không). Lưu ý: giá trị có độ dài tối đa là 2033 ký tự

Ví dụ sau đây chèn một hàng mới vào bảng và trả về giá trị nhận dạng ( ID ) của hàng mới. Tại đây chèn một Người giao hàng mới với thông tin HoTen và Sodienthoai vào bảng Người giao hàng

// Tạo đối tượng DbCommandusing var command = new SqlCommand (); command.Connection = connection; // Truy vấn bao gồm: chèn dữ liệu và lấy mã định danh mới (Khóa chính) được chèn vào chuỗi queryString =
Số điện thoại); SELECT CAST (scope_identity () AS int) ”; command.CommandText = queryString; command.Parameters.AddWithValue (“
Sodienthoai ”, 123456);var ShipperID = command.ExecuteScalar (); // Thực thi SQL trả về giá trị đầu tiênConsole.WriteLine ($ “Thêm người giao hàng mới, ID = {ShipperID}”);

Thực thi với ExecuteNonQuery

Thực thi SqlCommand với phương pháp ExecuteNonQuery, nó chỉ trả về số dòng tài liệu bị tác động ảnh hưởng ( số dòng bị xóa, số dòng được update … ). Thường dùng cách này để triển khai những truy vấn UPDATE, INSERT, DELETE. Tuy nhiên, nếu thủ tục được gọi, hiệu quả sẽ được trả về .

// Tạo kết nối var sqlconnectstring =
“Nguồn dữ liệu = localhost, 1433; Danh mục ban đầu = xtlab; User ID = SA; Password = Password123 ”; var connection = new SqlConnection (sqlconnectstring); connect.Open (); // Tạo đối tượng SqlCommandusing var command = new SqlCommand (); command.Connection = connection; // Truy vấn bao gồm: chèn dữ liệu và lấy mã định danh mới được chèn (Khóa chính) vào chuỗi queryString =
ShipperID ”, 4);var row_affected = command.ExecuteNonQuery ();Console.WriteLine ($ “Số dòng bị ảnh hưởng = {row_affected}”); connection.Close ();

Thực thi với ExecuteReader

Việc thực thi SqlCommand với phương pháp này sẽ tạo một đối tượng người dùng SqlDataReader được mở trước, từ đó nó giúp đọc từng dòng tác dụng trả về .
Một số phương pháp trong SqlDataReader
SqlDataReader. HasRows ( ) cho biết liệu có bất kể luồng tài liệu nào hay không. SqlDataReader. Read ( ) tải dòng tiếp theo, nếu đúng thì dòng tài liệu được tải thành công xuất sắc, nếu sai thì tài liệu đã được tải. Sau khi gọi phương pháp này, những cột của hàng hoàn toàn có thể được đọc bằng cách sử dụng. những nhà khai thác hoặc những hàm đọc tài liệu như. GetInt32 ( column ) ,. GetString ( column ) … SqlDataReader. Close ( ) đóng Reader sau khi đọc tài liệu .
Câu lệnh SELECT hoàn toàn có thể được sử dụng theo cách này
readCate. cs

// Tạo kết nối var sqlconnectstring =
“Nguồn dữ liệu = localhost, 1433; Danh mục ban đầu = xtlab; User ID = SA; Password = Password123 ”; var connection = new SqlConnection (sqlconnectstring); connect.Open (); // Tạo đối tượng SqlCommandusing var command = new SqlCommand (); command.Connection = connection; // Truy vấn get liststring queryString =
“CHỌN DanhmucID, TenDanhMuc, MoTa TỪ Danhmuc”; command.CommandText = queryString; // Thực thi truy vấn trả về SqlReaderusing var reader = command.ExecuteReader (); // Kiểm tra trả về if (reader.HasRows) {// Đọc tập kết quả từng dòng while (reader.Read ()) {var list = reader.GetInt32 (0); var tensanhmuc = reader; var mota = reader.GetString (“Mota”); Console.WriteLine ($ ”{nounmuc, 4} – {tensanhmuc, -20} – {mota}”); }} else {Console.WriteLine (“Không có dữ liệu trả về”);} connect.Close (); Ngoài ra, khi bạn nhận được đối tượng SqlDataReader, bạn có thể lấy tất cả các kết quả do SqlCommand trả về và đưa nó vào DataTable.

/ / … SqlCommand command = new SqlCommand ( “ SELECT DanhmucID, TenDanhMuc FROM Danhmuc ; ”, connection ) ; using ( SqlDataReader reader = command. ExecuteReader ( ) ) { DataTable myTable = new DataTable ( ) ; if ( reader. HasRows ) { myTable. Load ( reader ) ; } else { / / Không có hàng } } / / …

ExecuteXmlReader

Việc thực thi SqlCommand với phương pháp này sẽ tạo ra một đối tượng người tiêu dùng System. Xml. XmlReader, từ đó nó đọc từng dòng tác dụng trả về theo cấu trúc XML .
Xem thêm : Trường hợp bất khả kháng là gì ? Khái niệm về những sự kiện bất khả kháng

Gọi Thủ tục của DB

Theo mặc định, SqlCommand sẽ coi nội dung trong thuộc tính CommandText như một câu lệnh SQL vì nó đã đặt CommandType thành CommandType. Text ( xem ví dụ ở trên ). Nếu bạn muốn gọi Thủ tục, hãy đặt nó bằng CommandType. StoredProcedure .

Bạn có thể chạy một câu lệnh T-SQL để tạo một mẫu StoredProcedure có tên là getproduct với một tham số
idENDThực hành gọi một 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”; Kết nối SqlConnection = mới SqlConnection (sqlconnectStr); kết nối.Open (); // Thực thi thủ tục PROCEDURE .(
id int) trong MS SQL Server SqlCommand cmd = new SqlCommand (“getproduct”, kết nối); cmd.CommandType = CommandType.StoredProcedure; // Các tham số của thủ tục cmd.Parameters.Add (new SqlParameter () {ParameterName = “
id “, SqlDbType = SqlDbType.Int, Value = 10}); // Đọc trả về bằng cách sử dụng (SqlDataReader reader = cmd.ExecuteReader ()) {while (reader.Read ()) {var ten = reader; var gia = reader ; Console.WriteLine ($ ”{ten} {gia}”);}} connect.Close ();} // .. Lưu ý, các phương thức thực thi của SqlCommand đều có các phương thức bất đồng bộ tương ứng như ExecuteNonQueryAsync (), ExecuteReaderAsync () … thích hơn, hãy áp dụng kỹ thuật không đồng bộ, nói với SqlDataReader với ReadAsync ()

SqlCommandCác tham số của SqlCommandCác phương thức thực thi SqlCommandExecuteScalarExecuteNonQueryExecuteReaderExecuteXmlReaderThủ tục cuộc gọi

*

(ADO.NET) DataAdapter DataSet và DataTable học và sử dụng (ASP.NET Core MVC) Triển khai ứng dụng ASP.NET trên Server Linux với Kestrel Apache Nginx (ASP.NET Core MVC) Giới thiệu về một số mẫu quản trị và tích hợp Tích hợp quản trị viên SB (ASP .NET Core MVC) Tích hợp trình quản lý tệp vào trang web (ASP.NET Core) Sử dụng công cụ LibMan lấy thư viện phía máy khách (ADO.NET) Giới thiệu về kết nối ado.net và SQL Server với SqlConnection
Giới thiệu Bảo mật Từ điển Anh-Việt Chạy SQLRegExpCubic-bezierUnix dấu thời gian Ký tự HTMLcalories, BMR Index Body Mass Index BMITViolence Mã QR Lịch vạn niên Liên hệ RSS

Đây là blog cá thể, mình ghi lại và san sẻ những gì mình học được tại đây về kiến ​ ​ thức lập trình PHP, Java, JavaScript, Android, C # … và những kiến ​ ​ thức công nghệ tiên tiến khác