Tạo đối tượng SqlCommand vào C# nhằm truy vấn vấn với update cho tới DataBase SQL Server, tiến hành lệnh cùng với những cách thức ExecuteNonQuery, ExecuteScalar, ExecuteReader


Lớp SqlCommand - Khởi tạo ra đối tượng người sử dụng SqlCommand

Lớp SqlComm& xúc tiến trường đoản cú DbCommvà chất nhận được tạo thành đối tượng cơ mà trường đoản cú kia rất có thể thực hiện các lệnh SQL ảnh hưởng cùng với MS Squốc lộ Server nhỏng những mệnh đề UPDATE|INSERT|CREATE TABLE|SELECT ...

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

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

Chú ý: Nếu thực hiện MySQL thì đối tượng người dùng triển khai DbCommand là MySqlCommvà, tất cả biện pháp áp dụng một phương pháp giống như.

Để gấp rút tất cả một MS SQL Server kèm tài liệu mẫu, hãy sử dụng Docker cùng thực hiệntheo hướng dẫn: MS SQL Server bên trên Docker

Để sản xuất với thực hành được SqlCommand thì quan trọng lập đến nó câu lệnh SQL (truy nã vấn), cùng các tmê man số cho lệnh SQL kia, bên cạnh đó đề nghị thiết lập đọc tin liên kết mang đến SQL Server SqlConnection vào đối tượng SqlCommand.

Xem thêm: Lí Giải Về Proof Of Work Là Gì ? Tìm Hiểu Về Cơ Chế Proof Of Work (Pow)

ví dụ như, khởi tạo SqlCommvà - tùy chỉnh thiết lập ngay lập tức câu query và kết nối

var cmd = new SqlCommand(queryString, connection);Có thể khởi chế tác SqlCommand tiếp nối mới tùy chỉnh các thông số (câu truy tìm vấn, liên kết với những tsay đắm số ...) rồi tiếp nối thực hiện SqlComm& (tiến hành tầm 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(); command.Connection = connection; // select, insert, update, delete commvà.CommandText = "Mệnh đề truy nã vấn SQL"; // Thực hiện nay những câu truy nã vấn, phát âm kết quả // ... // ... connection.Close(); Từ đối tượng người tiêu dùng SqlConnection cũng có thể sinh sản ngay đối tượng người dùng SqlCommvà lắp cùng với liên kết đó:

using (var cmd = connection.CreateCommand()) cmd.CommandText = queryString; // tiến hành lệnh ... vì vậy nhằm thi hành lệnh SQL với SqlCommvà, thì cần có một liên kết trước (SqlConnection), rồi tạo thành đối tượng người tiêu dùng SqlCommvà, gán mang lại nó liên kết, câu lệnh SQL sau đó bắt đầu thi hành được. Để thực hiện, Hotline một trong những cách thức nlỗi ExecuteScalar, ExecuteNonQuery, ExecuteReader ... trình diễn sinh sống mục phía dưới

Thiết lập các tmê man số mang đến SqlCommmand

Các câu lệnh SQL rất có thể viết cất tên tyêu thích số vào nó, tiếp đến giá trị thực của tđắm say số này được SqlCommand gán cầm vào để có mệnh đề SQL thực sự. Tham mê số trong chuỗi câu lệnh Squốc lộ cam kết hiệu là
tenthamso
(lưu giữ bao gồm ký kết hiệu
), ví dụ:

string queryString = "SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc where DanhmucID >
DanhmucID"; Thì gồm một tđê mê số thương hiệu
DanhmucID: Giá trị thực thụ của tyêu thích số này sửa chữa vày giá trị của của một đối tượng giao diện SqlParameter. Tập hợp những tyêu thích số này lưu giữ trong thuộc tính Parameters của SqlCommand

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

"SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc where DanhmucID > 5"Trong khi hoàn toàn có thể khởi sinh sản một SqlParameter và phân phối, ví dụ:

var danhmuc = new SqlParameter("
DanhmucID", 5); // Tạo tđắm say sốcomm&.Parameters.Add(danhmuc); // Thêm vào SqlCommandvar danhmuc = new SqlParameter("
DanhmucID", 5); // Tạo tđắm say sốcommand.Parameters.Add(danhmuc); // Thêm vào SqlCommandHoặc cụ thể hơn như

// Khởi sinh sản có chỉ định và hướng dẫn kiểu dữ liệuvar danhmuc = new SqlParameter("
DanhmucID", SqlDbType.Int);// Gán gái trị vào tmê mẩn sốdanhmuc.Value = 5;// Thêm vào SqlCommandcomm&.Parameters.Add(danhmuc);

Các giải pháp thực hành SqlCommand cùng lấy kết quả truy tìm vấn

Có các phương thức không giống nhau để thực hiện SqlComm& tùy theo ngữ chình ảnh cùng với mục tiêu khác nhau, bao gồm có những cách tiến hành như:

ExecuteNonQuery() thực hiện truy hỏi vấn - không nên trả về dữ liệu gì, tương xứng triển khai những truy vấn nhỏng Update, Delete ... ExecuteReader() thực hành lệnh - trả về đối tượng người sử dụng đồ họa IDataReader như SqlDataReader, từ bỏ đó đọc được dữ liệu trả về ExecuteScalar() thì hành và trả về một giá trị duy nhất - sinh hoạt bậc nhất tiên, cột trước tiên

Sau phía trên áp dụng hotline những hàm trên

Thi hành SqlCommvà bằng cách làm ExecuteScalar()

Nếu thực hiện SqlComm& bởi thủ tục ExecuteScalar thì nó sẽ thực hành câu lệnh Squốc lộ với trả về 1 quý giá là cột trước tiên của mẫu trước tiên. (Cho dù câu lệnh Squốc lộ thực tiễn trả về tập kết quả nhiều dòng những cột). Lưu ý: cực hiếm gồm độ lâu năm buổi tối đa 2033 cam kết từ bỏ

lấy ví dụ sau sẽ cyếu một mẫu mới vào bảng và trả về giá trị định danh của mẫu mới cnhát vào (ID). Ở đây chèn một Shipper bắt đầu thông tin HoTen và Sodienthoách vào bảng Shippers

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

Thi hành cùng với ExecuteNonQuery

Thi hành SqlCommand bởi cách làm ExecuteNonQuery nó chỉ trả về tác dụng là số chiếc dữ liệu bị ảnh hưởng (số loại xóa, số dòng update ...). Thường cần sử dụng bí quyết này để thi hành các truy nã vấn UPDATE, INSERT, DELETE. Tuy nhiên, nếu như là hotline Procedure thì gồm hiệu 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 sử dụng SqlCommandusing var comm& = new SqlCommand();command.Connection = connection;// Câu truy nã vấn gồm: cnhát tài liệu vào cùng đem định danh(Primary key) bắt đầu chèn vàostring queryString =
ShipperID", 4);var rows_affected = comm&.ExecuteNonQuery();Console.WriteLine($"Số mẫu ảnh hưởng = rows_affected");connection.Close();

Thi hành cùng với ExecuteReader

Thi hành SqlCommand cùng với thủ tục thì nó sẽ tạo nên ra đối tượng SqlDataReader được msinh sống sẵn, trường đoản cú đối tượng kia giúp phát âm từng cái hiệu quả trả về.

Một số cách tiến hành trong SqlDataReader

SqlDataReader.HasRows() cho thấy thêm gồm loại tài liệu làm sao không SqlDataReader.Read() hấp thụ dữ liệu cái tiếp theo sau, giả dụ trả về true là tất cả mẫu tài liệu nạp về thành công, ví như false là đã không còn tài liệu hấp thụ về. Sau lúc hotline pmùi hương thực này, thì những cột của dòng có thể phát âm bởi các toán tử , hoặc những hàm phát âm dữ liệu nlỗi .GetInt32(cột), .GetString(cột) ... SqlDataReader.Close() đóng góp Reader sau khoản thời gian đọc chấm dứt dữ liệu

Các câu lệnh SELECT rất có thể cần sử dụng bí quyết 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();command.Connection = connection;// Câu truy hỏi vấn rước danh mụcstring queryString =
"SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc";command.CommandText = queryString;// Thi hành truy hỏi vấn trả về SqlReaderusing var reader = command.ExecuteReader();// Kiểm tra gồm kết quả trả vềif (reader.HasRows) // Đọc từng chiếc tập công dụng 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 tất cả dữ liệu trả về");connection.Close(); Ngoài ra Khi đã có được đối tượng người dùng SqlDataReader, hoàn toàn có thể đem tổng thể kết quả trả về của SqlCommand gửi vào DataTable

//...SqlCommand command = 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 với cách làm thì nó sẽ tạo ra đối tượng người sử dụng System.Xml.XmlReader, trường đoản cú đối tượng người dùng đó giúp phát âm từng loại hiệu quả trả về theo cấu tạo XML.

Xem thêm: Utc ( Giờ Utc Là Gì Và Vì Sao Nó Còn Được Gọi Là Gmt? Giờ Utc Là Gì

Call Procedure của DB

Mặc định SqlCommand vẫn coi ngôn từ trong trực thuộc tính CommandText là câu lệnh Squốc lộ vì nó sẽ tùy chỉnh CommandType bằng CommandType.Text (coi ví dụ trên). Nếu mong mỏi Hotline đến Procedure thì tùy chỉnh cấu hình nó bằng CommandType.StoredProcedure.

Quý Khách rất có thể chạy câu lệnh T-Squốc lộ nhằm tạo ra một StoredProcedure mẫu mã có tên getproduct với một tđê mê số
idENDThực hành Call 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) vào MS SQL Server SqlComm& cmd = new SqlCommand("getproduct", connection); cmd.CommandType = CommandType.StoredProcedure; // Tmê say 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();//.. Crúc ý, những cách thức của thực hành của SqlComm& đều phải có cách tiến hành bất đồng hóa tương ứng nhỏng ExecuteNonQueryAsync(), ExecuteReaderAsync() ... nhằm ưa thích thì vận dụng kỹ thuật async, đề cập những SqlDataReader cùng với ReadAsync()


SqlCommandTđam mê số Parameters của SqlCommandNhững thủ tục thi hành SqlCommandExecuteScalarExecuteNonQueryExecuteReaderExecuteXmlReaderhotline procedure
*

Sao giữ với hồi phục database vào Squốc lộ Server Kiểm tra với thu gọn gàng file data file log của Database trong Squốc lộ Server (ADO.NET) DataAdapter DataSet và DataTable tìm hiểu và áp dụng (ASP.NET Vi xử lý Core MVC) Triển knhị áp dụng ASP..NET trên Server Linux cùng với Kestrel Apabịt Nginx (ASP..NET bộ vi xử lý Core MVC) Giới thiệu một trong những admin template và tích hợp SB Admin (ADO.NET) Giới thiệu avày.net và kết nối SQL 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ố khối hận cơ thể BMITạo QR CodeLịch vạn niên Liên hệ RSS

Đây là blog cá thể, tôi ghi chép cùng chia sẻ các gì tôi học được tại chỗ này về kỹ năng xây dựng PHP., Java, JavaScript, Android, C# ... cùng những kỹ năng và kiến thức technology khácDeveloped by kulturbench.com


Chuyên mục: ĐỊNH NGHĨA
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *