Tạo đối tượng người tiêu dùng SqlCommvà vào C# nhằm tầm nã vấn với update cho tới cơ sở dữ liệu Squốc lộ Server, thực hiện lệnh với những thủ tục ExecuteNonQuery, ExecuteScalar, ExecuteReader
Lớp SqlCommand – Khởi tạo nên đối tượng người tiêu dùng SqlCommand
Lớp SqlCommvà thực thi trường đoản cú DbCommvà được cho phép tạo thành đối tượng nhưng mà từ đó rất có thể thực hành các lệnh SQL cửa hàng với MS Squốc lộ Server nlỗi những mệnh đề UPDATE|INSERT|CREATE TABLE|SELECT …
Đang xem: Executescalar là gì
cũng giống như có thể chấp nhận được thi hành các hàm, những stored procedure của Database.
Bạn đang xem: Executescalar là gì
Chú ý: Nếu thực hiện MySquốc lộ thì đối tượng người dùng thực thi DbCommand là MySqlComm&, gồm cách thực hiện một bí quyết giống như.
Để mau lẹ gồm một MS SQL Server kèm tài liệu mẫu, hãy sử dụng Docker với thực hiệntheo phía dẫn: MS SQL Server trên Docker
Để chế tác với thực hành được SqlCommand thì quan trọng lập đến nó câu lệnh Squốc lộ (truy tìm vấn), và các tmê man số mang lại lệnh SQL đó, đôi khi buộc phải cấu hình thiết lập báo cáo kết nối cho SQL Server SqlConnection vào đối tượng SqlComm&.
Xem thêm: (Vi) Tặng Nhiều Gift Code Game Thương Khung Chi Kiếm Mới Nhất
lấy một ví dụ, khởi chế tác SqlCommvà – thiết lập cấu hình tức thì câu query với kết nối
var cmd = new SqlCommand(queryString, connection);Có thể khởi tạo ra SqlCommvà kế tiếp new thiết lập cấu hình các thông số kỹ thuật (câu tầm nã vấn, liên kết cùng những tđắm đuối số …) rồi tiếp nối triển khai SqlComm& (triển khai tróc 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 sử dụng DbCommand using var comm& = new SqlCommand(); commvà.Connection = connection; // select, insert, update, delete commvà.CommandText = “Mệnh đề truy vấn vấn SQL”; // Thực hiện tại các câu truy vấn, gọi hiệu quả // … // … connection.Close(); Từ đối tượng SqlConnection cũng rất có thể sinh sản ngay đối tượng SqlComm& đính thêm với kết nối đó:
using (var cmd = connection.CreateCommand()) cmd.CommandText = queryString; // triển khai lệnh … vì vậy để thực hiện lệnh SQL cùng với SqlCommvà, 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 sử dụng SqlCommvà, gán mang đến nó liên kết, câu lệnh SQL tiếp đến mới thực hành được. Để thực hiện, điện thoại tư vấn một trong số cách thức như ExecuteScalar, ExecuteNonQuery, ExecuteReader … trình bày sinh hoạt mục phía dưới
READ Định Nghĩa Của Từ " Đôi Giày Trong Tiếng Anh Là Gì, Đôi Giày Trong Tiếng Anh Là Gì
Thiết lập những tsay mê số cho SqlCommmand
Các câu lệnh SQL hoàn toàn có thể viết cất thương hiệu tmê say số vào nó, tiếp nối quý hiếm thực của tđắm đuối số này được SqlComm& gán cố gắng vào để có mệnh đề SQL đích thực. Tmê mệt số vào chuỗi câu lệnh SQL cam kết hiệu là tenthamso (ghi nhớ tất cả cam kết hiệu ), ví dụ:
string queryString = “SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc where DanhmucID > DanhmucID”; Thì tất cả một tđê mê số thương hiệu DanhmucID: Giá trị thực thụ của tsi số này sửa chữa thay thế vì chưng quý giá của của một đối tượng người sử dụng kiểu dáng SqlParameter. Tập thích hợp các tmê mệt số này lưu giữ vào thuộc tính Parameters của SqlCommand
commvà.Parameters.AddWithValue(“Danhmuc của câu truy hỏi vấn, kết quảcâu truy nã vấn là
“SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc where DanhmucID > 5″Hình như có thể khởi tạo một SqlParameter cùng cấp dưỡng, ví dụ:
var danhmuc = new SqlParameter(“DanhmucID”, 5); // Tạo tmê say sốcommand.Parameters.Add(danhmuc); // Thêm vào SqlCommandvar danhmuc = new SqlParameter(“DanhmucID”, 5); // Tạo tđam mê sốcomm&.Parameters.Add(danhmuc); // Thêm vào SqlCommandHoặc chi tiết hơn như
// Khởi tạo nên có hướng dẫn và chỉ định kiểu dáng dữ liệuvar danhmuc = new SqlParameter(“DanhmucID”, SqlDbType.Int);// Gán gái trị vào ttê mê sốdanhmuc.Value = 5;// Thêm vào SqlCommandcommvà.Parameters.Add(danhmuc);
Các giải pháp thực hiện SqlComm& và rước tác dụng truy tìm vấn
Có các thủ tục không giống nhau nhằm thực hành SqlCommvà tùy theo ngữ cảnh với mục tiêu khác biệt, tất cả bao gồm các phương thức như:
ExecuteNonQuery() thực hành tầm nã vấn – không phải trả về tài liệu gì, cân xứng thực hiện các truy nã vấn như Update, Delete … ExecuteReader() thi hành lệnh – trả về đối tượng người dùng giao diện IDataReader nhỏng SqlDataReader, trường đoản cú kia hiểu được tài liệu trả về ExecuteScalar() thì hành với trả về một cực hiếm tuyệt nhất – nghỉ ngơi bậc nhất tiên, cột thứ nhất
Sau trên đây áp dụng Gọi các hàm trên
Thi hành SqlCommvà bởi phương thức ExecuteScalar()
Nếu thực hành SqlCommand bởi phương thức ExecuteScalar thì nó đã thi hành câu lệnh Squốc lộ cùng trả về 1 cực hiếm là cột đầu tiên của chiếc trước tiên. (Cho cho dù câu lệnh SQL thực tế trả về tập công dụng các mẫu các cột). Lưu ý: quý giá bao gồm độ dài buổi tối nhiều 2033 cam kết từ
lấy ví dụ sau vẫn cnhát một mẫu mới vào bảng với trả về quý hiếm định danh của mẫu bắt đầu cnhát vào (ID). Tại phía trên cyếu một Shipper new biết tin HoTen với Sodienthoai phong vào bảng Shippers
// Tạo đối tượng người tiêu dùng DbCommandusing var comm& = new SqlCommand();comm&.Connection = connection;// Câu truy vấn vấn gồm: chèn dữ liệu vào và lấy định danh(Primary key) new cyếu vàostring queryString = Sodienthoai); SELECT CAST(scope_identity() AS int)”;commvà.CommandText = queryString;command.Parameters.AddWithValue(“Sodienthoai”, 123456);var ShipperID = comm&.ExecuteScalar(); // Thi hành SQL trả về giá trị đầu tiênConsole.WriteLine($”Thêm new Shipper, ID = ShipperID”);
Thi hành với ExecuteNonQuery
Thi hành SqlComm& bởi cách tiến hành ExecuteNonQuery nó chỉ trả về công dụng là số loại dữ liệu bị tác động (số cái xóa, số cái update …). Thường sử dụng bí quyết này nhằm thực hành các truy vấn vấn UPDATE, INSERT, DELETE. Tuy nhiên, nếu như là gọi Procedure thì có công dụng 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 command = new SqlCommand();commvà.Connection = connection;// Câu truy nã vấn gồm: chèn tài liệu vào và lấy định danh(Primary key) bắt đầu cyếu vàostring queryString = ShipperID”, 4);var rows_affected = comm&.ExecuteNonQuery();Console.WriteLine($”Số chiếc ảnh hưởng = rows_affected”);connection.Close();
Thi hành cùng với ExecuteReader
Thi hành SqlComm& cùng với cách làm thì nó sẽ tạo nên ra đối tượng người tiêu dùng SqlDataReader được msống sẵn, tự đối tượng kia giúp hiểu từng loại công dụng trả về.
Một số cách tiến hành vào SqlDataReader
SqlDataReader.HasRows() cho biết có dòng dữ liệu như thế nào ko SqlDataReader.Read() hấp thụ tài liệu mẫu tiếp theo sau, ví như trả về true là tất cả chiếc dữ liệu nạp về thành công xuất sắc, ví như false là đã mất tài liệu nạp về. Sau lúc hotline phương thực này, thì các cột của loại hoàn toàn có thể gọi bằng các toán thù tử , hoặc những hàm hiểu dữ liệu nlỗi .GetInt32(cột), .GetString(cột) … SqlDataReader.Close() đóng Reader sau khoản thời gian hiểu xong dữ liệu
Các câu lệnh SELECT có thể sử dụng phương pháp 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 commvà = new SqlCommand();commvà.Connection = connection;// Câu tầm nã vấn rước danh mụcstring queryString = “SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc”;command.CommandText = queryString;// Thi hành truy vấn trả về SqlReaderusing var reader = comm&.ExecuteReader();// Kiểm tra có hiệu quả trả vềif (reader.HasRows) // Đọc từng cái tập hiệu 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 bao gồm tài liệu trả về”);connection.Close(); Hình như lúc đã đạt được đối tượng người dùng SqlDataReader, rất có thể rước toàn thể tác dụng trả về của SqlCommvà gửi vào DataTable
//…SqlCommand commvà = 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
Thi hành SqlComm& với phương thức thì nó sẽ tạo nên ra đối tượng người dùng System.Xml.XmlReader, từ đối tượng người dùng đó giúp hiểu từng dòng tác dụng trả về theo cấu tạo XML.
Điện thoại tư vấn Procedure của DB
Mặc định SqlCommvà sẽ coi câu chữ vào ở trong tính CommandText là câu lệnh SQL do nó đang tùy chỉnh cấu hình CommandType bởi CommandType.Text (xem ví dụ trên). Nếu mong Call mang đến Procedure thì tùy chỉnh thiết lập nó bằng CommandType.StoredProcedure.
quý khách hàng hoàn toàn có thể chạy câu lệnh T-Squốc lộ để tạo thành một StoredProcedure mẫu mang tên getsản phẩm với cùng 1 ttê mê sốidENDThực hành hotline giấy tờ thủ tục Squốc lộ 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 Server SqlCommand 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; var gia = reader; Console.WriteLine($”ten gia”); connection.Close();//.. Crúc ý, những phương thức của thi hành của SqlCommand đều có cách tiến hành bất đồng bộ tương xứng như ExecuteNonQueryAsync(), ExecuteReaderAsync() … để thích thì áp dụng chuyên môn async, nói các SqlDataReader với ReadAsync()
SqlCommandTham số Parameters của SqlCommandNhững cách thức thực hành SqlCommandExecuteScalarExecuteNonQueryExecuteReaderExecuteXmlReadergọi procedure
(ADO.NET) DataAdapter DataSet cùng DataTable khám phá và áp dụng (ASPhường.NET Chip Core MVC) Triển knhì ứng dụng ASPhường.NET bên trên Server Linux với Kestrel Apache Nginx (ASP.NET bộ vi xử lý Core MVC) Giới thiệu một số admin template với tích đúng theo SB Admin (ASP.NET Vi xử lý Core MVC) Tích vừa lòng trình thống trị file vào trang web (ASP.NET Core) Sử dụng khí cụ LibMan mang thư viện client-side (ADO.NET) Giới thiệu avì chưng.net và kết nối Squốc lộ Server cùng với SqlConnection Giới thiệuPrivacyTừ điển Anh – ViệtChạy SQLRegExpCubic-bezierUnix timestampKý từ HTMLcalories, chỉ số BMRchỉ số kăn năn khung người BMITạo QR CodeLịch vạn niên Liên hệ RSS
Đây là blog cá thể, tôi ghi chnghiền và share số đông gì tôi học được tại chỗ này về kiến thức xây dựng PHP.., Java, JavaScript, Android, C# … với những kiến thức và kỹ năng technology khácDeveloped by balkanpoliticalclub.net