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ì
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ấtSau 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ử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