EXECUTENONQUERY LÀ GÌ

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


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

Lớp SqlCommand tiến hành từ DbCommvà chất nhận được tạo nên đối tượng người sử dụng mà lại tự kia rất có thể thực hiện các lệnh SQL thúc đẩy với MS Squốc lộ Server như các mệnh đề UPDATE|INSERT|CREATE TABLE|SELECT ...

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

cũng giống như có thể chấp nhận được thực hành những hàm, các stored procedure của Database.

Crúc ý: Nếu áp dụng MySquốc lộ thì đối tượng người sử dụng triển khai DbCommand là MySqlCommand, bao gồm giải pháp thực hiện một phương pháp tựa như.

Để nhanh lẹ có một MS Squốc lộ Server kèm tài liệu mẫu mã, hãy cần sử dụng Docker và thực hiệntheo hướng dẫn: MS SQL Server bên trên Docker

Để sinh sản với thực hành được SqlCommand thì quan trọng lập đến nó câu lệnh Squốc lộ (tróc nã vấn), cùng các tsay mê số mang lại lệnh SQL kia, đồng thời đề nghị tùy chỉnh thiết lập lên tiếng kết nối đến Squốc lộ Server SqlConnection vào đối tượng người sử dụng SqlCommvà.

Xem thêm: Những Điều Ít Ai Biết Về Loài Chim Tu Hú ? Chim Tu Hú Và Chiến Thuật Gửi Trứng Cực Kì Bá Đạo

lấy ví dụ như, khởi sản xuất SqlCommvà - tùy chỉnh cấu hình ngay câu query cùng kết nối

var cmd = new SqlCommand(queryString, connection);Có thể khởi tạo nên SqlCommand kế tiếp new thiết lập cấu hình các thông số kỹ thuật (câu tróc nã vấn, liên kết với các tyêu thích số ...) rồi sau đó thực hiện SqlCommand (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 DbComm& using var comm& = new SqlCommand(); comm&.Connection = connection; // select, insert, update, delete command.CommandText = "Mệnh đề truy nã vấn SQL"; // Thực hiện tại những câu truy vấn vấn, hiểu tác dụng // ... // ... connection.Close(); Từ đối tượng SqlConnection cũng có thể sản xuất tức thì đối tượng SqlCommand đính với liên kết đó:

using (var cmd = connection.CreateCommand()) cmd.CommandText = queryString; // triển khai lệnh ... do vậy nhằm thi hành lệnh Squốc lộ cùng với SqlCommand, thì cần 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 cho nó kết nối, câu lệnh SQL tiếp nối new thi hành được. Để thi hành, Hotline một trong số thủ tục nhỏng ExecuteScalar, ExecuteNonQuery, ExecuteReader ... trình bày sinh hoạt mục phía dưới

Thiết lập những ttê mê số cho SqlCommmand

Các câu lệnh Squốc lộ có thể viết chứa thương hiệu tmê say số trong nó, tiếp nối quý giá thực của tham số này được SqlCommand gán thế vào để sở hữu mệnh đề Squốc lộ thực sự. Tmê mệt số vào chuỗi câu lệnh SQL ký kết hiệu là
tenthamso
(lưu giữ tất cả ký 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ị đích thực của tsay mê số này sửa chữa vị quý hiếm của của một đối tượng người sử dụng hình dạng SqlParameter. Tập hợp những tham số này lưu giữ trong nằm trong tính Parameters của SqlCommand

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

"SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc where DanhmucID > 5"Hình như rất có thể khởi chế tạo một SqlParameter và thêm vào, ví dụ:

var danhmuc = new SqlParameter("
DanhmucID", 5); // Tạo tmê say sốcommvà.Parameters.Add(danhmuc); // Thêm vào SqlCommandvar danhmuc = new SqlParameter("
DanhmucID", 5); // Tạo tyêu thích sốcomm&.Parameters.Add(danhmuc); // Thêm vào SqlCommandHoặc chi tiết rộng như

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

Các biện pháp thi hành SqlComm& với đem kết quả tróc nã vấn

Có những cách làm khác nhau để thi hành SqlCommand tùy theo ngữ chình ảnh với mục đích khác nhau, bao gồm có những cách thức như:

ExecuteNonQuery() thực hành tróc nã vấn - ko nên trả về tài liệu gì, cân xứng triển khai những truy vấn vấn như Update, Delete ... ExecuteReader() thực hiện lệnh - trả về đối tượng người dùng đồ họa IDataReader nlỗi SqlDataReader, tự đó đọc được tài liệu trả về ExecuteScalar() thì hành với trả về một quý giá nhất - sinh hoạt số 1 tiên, cột trước tiên

Sau đây áp dụng gọi các hàm trên

Thi hành SqlComm& bằng phương thức ExecuteScalar()

Nếu thực hành SqlCommand bằng phương thức ExecuteScalar thì nó đang thi hành câu lệnh SQL và trả về 1 quý giá là cột thứ nhất 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ả các loại nhiều cột). Lưu ý: quý hiếm gồm độ lâu năm buổi tối đa 2033 ký kết từ bỏ

Ví dụ sau sẽ cnhát một cái new vào bảng với trả về quý giá định danh của cái bắt đầu cyếu vào (ID). Ở đây cnhát một Shipper mới báo cáo HoTen cùng Sodienthoai vệ vào bảng Shippers

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

Thi hành với ExecuteNonQuery

Thi hành SqlComm& bằng cách thức ExecuteNonQuery nó chỉ trả về công dụng là số chiếc tài liệu bị tác động (số chiếc xóa, số mẫu update ...). Thường dùng giải pháp này nhằm thực hiện những truy 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 dùng SqlCommandusing var commvà = new SqlCommand();comm&.Connection = connection;// Câu truy vấn vấn gồm: cnhát tài liệu vào cùng mang định danh(Primary key) mới cyếu vàostring queryString =
ShipperID", 4);var rows_affected = command.ExecuteNonQuery();Console.WriteLine($"Số chiếc tác động = rows_affected");connection.Close();

Thi hành với ExecuteReader

Thi hành SqlCommand với thủ tục thì nó sẽ tạo ra đối tượng SqlDataReader được msinh hoạt sẵn, từ bỏ đối tượng đó giúp phát âm từng cái công dụng trả về.

Một số cách làm vào SqlDataReader

SqlDataReader.HasRows() cho biết thêm bao gồm mẫu dữ liệu như thế nào ko SqlDataReader.Read() nạp tài liệu chiếc tiếp sau, nếu như trả về true là gồm cái tài liệu nạp về thành công xuất sắc, giả dụ false là đã không còn tài liệu nạp về. Sau lúc gọi pmùi hương thực này, thì các cột của dòng có thể gọi bằng những tân oán tử , hoặc các hàm hiểu dữ liệu nlỗi .GetInt32(cột), .GetString(cột) ... SqlDataReader.Close() đóng góp Reader sau khi gọi dứt tài liệu

Các câu lệnh SELECT hoàn toàn có thể sử dụng giải 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 người tiêu dùng SqlCommandusing var comm& = new SqlCommand();command.Connection = connection;// Câu tróc nã vấn lấy danh mụcstring queryString =
"SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc";commvà.CommandText = queryString;// Thi hành truy hỏi vấn trả về SqlReaderusing var reader = commvà.ExecuteReader();// Kiểm tra có tác dụng trả vềif (reader.HasRows) // Đọc từng cái tập tác 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 có tài liệu trả về");connection.Close(); Dường như lúc đã đạt được đối tượng người tiêu dùng SqlDataReader, có thể rước toàn bộ kết quả trả về của SqlCommand đưa vào DataTable

//...SqlCommvà comm& = 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 SqlCommand cùng với cách tiến hành thì nó sẽ tạo nên ra đối tượng người tiêu dùng System.Xml.XmlReader, tự đối tượng kia giúp gọi từng mẫu công dụng trả về theo cấu tạo XML.

Call Procedure của DB

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

Bạn có thể chạy câu lệnh T-Squốc lộ nhằm tạo thành một StoredProcedure mẫu mã mang tên getsản phẩm với cùng 1 tmê say số
idENDThực hành Gọi giấy 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"; SqlConnection connection = new SqlConnection(sqlconnectStr); connection.Open(); // Thi hành giấy tờ thủ tục PROCEDURE .(
id int) trong MS SQL Server SqlCommand cmd = new SqlCommand("getproduct", connection); cmd.CommandType = CommandType.StoredProcedure; // Tmê mệt số của procedure cmd.Parameters.Add( new SqlParameter() ParameterName = "
id", SqlDbType = SqlDbType.Int, Value = 10 ); // Đọc kết 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ú ý, những thủ tục của thực hành của SqlCommvà đều có phương thức bất đồng nhất khớp ứng nhỏng ExecuteNonQueryAsync(), ExecuteReaderAsync() ... nhằm yêu thích thì áp dụng kỹ thuật async, nhắc các SqlDataReader với ReadAsync()


SqlCommandTđắm say số Parameters của SqlCommandNhững cách tiến hành thực hiện SqlCommandExecuteScalarExecuteNonQueryExecuteReaderExecuteXmlReaderHotline procedure
*

Tạo những Requirement với Authorization handler chứng thực quyền truy cập Authorize trong ASP.NET bộ vi xử lý Core Sao lưu với phục sinh database trong SQL Server Kiểm tra và thu gọn gàng tệp tin data tệp tin log của Database trong Squốc lộ Server (ADO.NET) DataAdapter DataSet với DataTable khám phá với thực hiện (ASP..NET Vi xử lý Core MVC) Triển khai vận dụng ASPhường.NET trên Server Linux với Kestrel Apache Nginx (ADO.NET) Giới thiệu abởi vì.net cùng liên kết SQL Server cù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 hận cơ thể BMITạo QR CodeLịch vạn niên Liên hệ RSS

Đây là blog cá nhân, tôi ghi chxay và share hầu như gì tôi học tập được ở đây về kỹ năng thiết kế PHPhường, Java, JavaScript, Android, C# ... với những kiến thức công nghệ khácDeveloped by millionarthur.mobi