EXECUTESCALAR LÀ GÌ, SQLCOMMAND TRUY VẤN VÀ CẬP NHẬT DỮ LIỆU

Tạo đối tượng người sử dụng SqlCommand trong C# để truy vấn và update tới database SQL Server, triển khai lệnh với các phương thức ExecuteNonQuery, ExecuteScalar, ExecuteReader

Lớp SqlCommand – Khởi tạo đối tượng người tiêu dùng SqlCommand

Lớp SqlCommand triển khai từ DbCommand có thể chấp nhận được tạo ra đối tượng người dùng mà trường đoản cú đó có thể thi hành những lệnh SQL shop với MS SQL vps như những mệnh đề UPDATE|INSERT|CREATE TABLE|SELECT …

Đang xem: Executescalar là gì


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

Bạn đang xem: Executescalar là gì, sqlcommand truy vấn và cập nhật dữ liệu

Chú ý: Nếu thực hiện MySQL thì đối tượng người sử dụng triển khai DbCommand là MySqlCommand, có cách thực hiện một biện pháp tương tự.

Để nhanh chóng có một MS SQL server kèm dữ liệu mẫu, hãy cần sử dụng Docker và thực hiệntheo hướng dẫn: MS SQL vps trên Docker

Để chế tạo và thực hiện được SqlCommand thì cần thiết lập mang đến nó câu lệnh SQL (truy vấn), và những tham số đến lệnh SQL đó, bên cạnh đó phải thiết lập cấu hình thông tin kết nối đến SQL server SqlConnection vào đối tượng người dùng SqlCommand.

Xem thêm: phần mềm logic pro x

Ví dụ, khởi tạo ra SqlCommand – thiết lập ngay câu query và kết nối

var cmd = new SqlCommand(queryString, connection);Có thể khởi tạo thành SqlCommand sau đó mới tùy chỉnh các thông số kỹ thuật (câu truy vấn vấn, kết nối và những tham số …) rồi sau đó thực hiện SqlCommand (thực hiện tại truy 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 sử dụng DbCommand using var command = new SqlCommand(); command.Connection = connection; // select, insert, update, delete command.CommandText = “Mệnh đề truy hỏi vấn SQL”; // tiến hành các câu truy nã vấn, đọc kết quả // … // … connection.Close(); Từ đối tượng người tiêu dùng SqlConnection cũng có thể tạo ngay đối tượng người dùng SqlCommand đính với kết nối đó:

using (var cmd = connection.CreateCommand()) cmd.CommandText = queryString; // tiến hành lệnh … vì vậy để thi hành lệnh SQL cùng với SqlCommand, thì cần có một kết nối trước (SqlConnection), rồi sản xuất ra đối tượng người tiêu dùng SqlCommand, gán mang đến nó kết nối, câu lệnh SQL tiếp nối mới thực hiện được. Để thi hành, call một trong các phương thức như ExecuteScalar, ExecuteNonQuery, ExecuteReader … trình bày ở mục phía dưới


Thiết lập các tham số mang đến SqlCommmand

Các câu lệnh SQL rất có thể viết chứa tên tham số vào nó, kế tiếp giá trị thực của thông số này được SqlCommand gán cầm cố vào để có mệnh đề SQL thực sự. Thông số trong chuỗi câu lệnh SQL ký hiệu là tenthamso (nhớ tất cả ký hiệu ), ví dụ:

string queryString = “SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc where DanhmucID > DanhmucID”; Thì gồm một tham số thương hiệu DanhmucID: quý hiếm thực sự của thông số này sửa chữa bởi cực hiếm của của một đối tượng người dùng kiểu SqlParameter. Tập hợp những tham số này giữ trong nằm trong tính Parameters của SqlCommand

command.Parameters.AddWithValue(“Danhmuc của câu truy vấn vấn, kết quảcâu truy hỏi vấn là

“SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc where DanhmucID > 5″Ngoài ra rất có thể khởi chế tác một SqlParameter và thêm vào, ví dụ:

var danhmuc = new SqlParameter(“DanhmucID”, 5); // tạo nên tham sốcommand.Parameters.Add(danhmuc); // cung ứng SqlCommandvar danhmuc = new SqlParameter(“DanhmucID”, 5); // chế tạo ra tham sốcommand.Parameters.Add(danhmuc); // sản xuất SqlCommandHoặc cụ thể hơn như

// Khởi tạo tất cả chỉ định kiểu dữ liệuvar danhmuc = new SqlParameter(“DanhmucID”, SqlDbType.Int);// Gán gái trị vào tham sốdanhmuc.Value = 5;// cung ứng SqlCommandcommand.Parameters.Add(danhmuc);

Các bí quyết thi hành SqlCommand và lấy công dụng truy vấn

Có các phương thức không giống nhau để thực hành SqlCommand tùy theo ngữ cảnh với mục đích khác nhau, bao gồm có những phương thức như:

ExecuteNonQuery() thi hành truy nã vấn – không phải trả về dữ liệu gì, tương xứng thực hiện những truy vấn như 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ừ đó đọc được tài liệu trả về ExecuteScalar() thì hành với trả về một cực hiếm duy tuyệt nhất – ở bậc nhất tiên, cột thứ nhất

Sau đây vận dụng gọi những hàm trên

Thi hành SqlCommand bởi phương thức ExecuteScalar()

Nếu thi hành SqlCommand bởi phương thức ExecuteScalar thì nó đang thi hành câu lệnh SQL cùng trả về 1 quý hiếm là cột thứ nhất của chiếc đầu tiên. (Cho cho dù câu lệnh SQL thực tiễn trả về tập công dụng nhiều dòng các cột). Giữ ý: giá bán trị tất cả độ dài về tối đa 2033 ký kết tự

Ví dụ sau sẽ chèn một dòng bắt đầu vào bảng với trả về cực hiếm định danh của dòng bắt đầu chèn vào (ID). Ở phía trên chèn một Shipper mới tin tức HoTen với Sodienthoai vào bảng Shippers


// Tạo đối tượng người sử dụng DbCommandusing var command = new SqlCommand();command.Connection = connection;// Câu truy hỏi vấn gồm: chèn dữ liệu vào cùng lấy định danh(Primary key) mới chèn vàostring queryString = Sodienthoai); SELECT CAST(scope_identity() AS int)”;command.CommandText = queryString;command.Parameters.AddWithValue(“Sodienthoai”, 123456);var ShipperID = command.ExecuteScalar(); // thi hành SQL trả về cực hiếm đầu tiênConsole.WriteLine($”Thêm new Shipper, ID = ShipperID”);

Thi hành cùng với ExecuteNonQuery

thi hành SqlCommand bởi phương thức ExecuteNonQuery nó chỉ trả về kết quả là số dòng tài liệu bị ảnh hưởng (số loại xóa, số mẫu update …). Hay được dùng cách này để thi hành các truy vấn UPDATE, INSERT, DELETE. Tuy nhiên, nếu là hotline Procedure thì có công dụng trả về.

// tạo thành 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 command = new SqlCommand();command.Connection = connection;// Câu tầm nã vấn gồm: chèn dữ liệu vào với lấy định danh(Primary key) bắt đầu chèn vàostring queryString = ShipperID”, 4);var rows_affected = command.ExecuteNonQuery();Console.WriteLine($”Số dòng tác động = rows_affected”);connection.Close();

Thi hành với ExecuteReader

thi hành SqlCommand với cách tiến hành thì nó sẽ tạo nên ra đối tượng người sử dụng SqlDataReader được mở sẵn, từ đối tượng đó giúp hiểu từng dòng kết quả trả về.

Một số thủ tục trong SqlDataReader

SqlDataReader.HasRows() cho biết có dòng tài liệu nào không SqlDataReader.Read() nạp dữ liệu dòng tiếp theo, trường hợp trả về true là bao gồm dòng tài liệu nạp về thành công, nếu false là đã mất dữ liệu nạp về. Sau thời điểm gọi phương thực này, thì những cột của dòng hoàn toàn có thể đọc bằng các toán tử , hoặc những hàm đọc tài liệu như .GetInt32(cột), .GetString(cột) … SqlDataReader.Close() đóng góp Reader sau khoản thời gian đọc xong dữ liệu

Các câu lệnh SELECT có thể dùng phương pháp náy

readCate.cs

// chế tác 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 sử dụng SqlCommandusing var command = new SqlCommand();command.Connection = connection;// Câu truy vấn mang danh mụcstring queryString = “SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc”;command.CommandText = queryString;// Thi hành truy vấn vấn trả về SqlReaderusing var reader = command.ExecuteReader();// chất vấn có hiệu quả trả vềif (reader.HasRows) // Đọc từng mẫu tập kết quả while (reader.Read()) var danhmuc = reader.GetInt32(0); var tendanhmuc = reader; var mota = reader.GetString(“Mota”); Console.WriteLine($”danhmuc, 4 – tendanhmuc, -20 – mota”); else Console.WriteLine(“Không có tài liệu trả về”);connection.Close(); bên cạnh đó khi tất cả được đối tượng người sử dụng SqlDataReader, rất có thể lấy toàn bộ tác dụng trả về của SqlCommand chuyể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 //No rows //…

ExecuteXmlReader

thực hành SqlCommand với cách tiến hành thì nó sẽ tạo ra đối tượng người tiêu dùng System.Xml.XmlReader, từ đối tượng người dùng đó giúp gọi từng dòng hiệu quả trả về theo cấu tạo XML.

Gọi Procedure của DB

Mặc định SqlCommand đã coi văn bản trong trực thuộc tính CommandText là câu lệnh SQL vì chưng nó đã tùy chỉnh CommandType bằng CommandType.Text (xem ví dụ như trên). Nếu muốn gọi đến Procedure thì tùy chỉnh thiết lập nó bởi CommandType.StoredProcedure.

Bạn hoàn toàn có thể chạy câu lệnh T-SQL để tạo nên một StoredProcedure mẫu có tên getproduct với 1 tham sốidENDThực hành gọi 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 thủ tục PROCEDURE .(id int) trong MS SQL hệ thống SqlCommand cmd = new SqlCommand(“getproduct”, connection); cmd.CommandType = CommandType.StoredProcedure; // thông số của procedure cmd.Parameters.Add( new SqlParameter() ParameterName = “id”, SqlDbType = SqlDbType.Int, Value = 10 ); // Đọc tác dụng trả về using (SqlDataReader reader = cmd.ExecuteReader()) while (reader.Read()) var ten = reader; var gia = reader; Console.WriteLine($”ten gia”); connection.Close();//.. Chú ý, những phương thức của thực hiện của SqlCommand đều phải sở hữu phương thức bất đồng bộ tương ứng như ExecuteNonQueryAsync(), ExecuteReaderAsync() … để ưng ý thì vận dụng kỹ thuật async, kể các SqlDataReader cùng với ReadAsync()

SqlCommandTham số Parameters của SqlCommandNhững cách làm thi hành SqlCommandExecuteScalarExecuteNonQueryExecuteReaderExecuteXmlReaderGọi procedure

(ADO.NET) DataAdapter DataSet và DataTable tò mò và thực hiện (ASP.NET core MVC) thực hiện ứng dụng ASP.NET trên hệ thống Linux với Kestrel Apache Nginx (ASP.NET bộ vi xử lý core MVC) ra mắt một số admin template với tích thích hợp SB Admin (ASP.NET vi xử lý core MVC) Tích phù hợp trình làm chủ file vào trang web (ASP.NET Core) áp dụng công rứa LibMan mang thư viện client-side (ADO.NET) trình làng ado.net và kết nối SQL hệ thống với SqlConnection Giới thiệuPrivacyTừ điển Anh – ViệtChạy SQLRegExpCubic-bezierUnix timestampKý từ bỏ HTMLcalories, chỉ số BMRchỉ số khối khung hình BMITạo QR CodeLịch vạn niên contact RSS

Đây là blog cá nhân, tôi ghi chép và share những gì tôi học được ở đây về kỹ năng lập trình PHP, Java, JavaScript, Android, C# … và những kiến thức công nghệ khácDeveloped by obatambeienwasirherbal.com