Executescalar Là Gì

Tạo đối tượng SqlCommvà vào C# để tầm nã vấn và cập nhật tới CSDL SQL Server, tiến hành lệnh với các thủ tục ExecuteNonQuery, ExecuteScalar, ExecuteReader


Lớp SqlComm& - Khởi chế tạo ra đối tượng người dùng SqlCommand

Lớp SqlComm& thực hiện từ bỏ DbCommand được cho phép tạo nên đối tượng nhưng trường đoản cú kia rất có thể thực hành những lệnh SQL liên can cùng với MS Squốc lộ Server như những mệnh đề UPDATE|INSERT|CREATE TABLE|SELECT ...

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

tương tự như có thể chấp nhận được thi hành những hàm, các 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à MySqlComm&, tất cả bí quyết sử dụng một giải pháp tương tự.

Để lập cập tất cả một MS SQL Server kèm tài liệu chủng loại, hãy sử dụng Docker với thực hiệntheo hướng dẫn: MS Squốc lộ Server trên Docker

Để tạo ra cùng thi hành được SqlCommand thì cần thiết lập mang đến nó câu lệnh SQL (truy tìm vấn), cùng các tđê mê số mang lại lệnh SQL kia, đôi khi đề xuất tùy chỉnh báo cáo liên kết mang đến SQL Server SqlConnection vào đối tượng người sử dụng SqlCommand.

Xem thêm: Cách Đánh Giá Hiệu Quả Dự Án Đầu Tư Và Đánh Giá Hiệu Quả Tài

lấy một ví dụ, khởi tạo nên SqlCommand - 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 sản xuất SqlCommvà tiếp đến bắt đầu tùy chỉnh cấu hình các thông số (câu tầm nã vấn, kết nối với các tmê say số ...) rồi sau đó tiến hành SqlCommand (triển khai truy vấn vấn SQL)

// Tạo liên kết var 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 DbComm& using var commvà = new SqlCommand(); commvà.Connection = connection; // select, insert, update, delete commvà.CommandText = "Mệnh đề truy tìm vấn SQL"; // Thực hiện các câu tầm nã vấn, phát âm công dụng // ... // ... connection.Close(); Từ đối tượng người dùng SqlConnection cũng rất có thể tạo ra tức thì đối tượng người tiêu dùng SqlCommand đính cùng với liên kết đó:

using (var cmd = connection.CreateCommand()) cmd.CommandText = queryString; // triển khai lệnh ... vì thế nhằm thi hành lệnh Squốc lộ cùng với SqlCommvà, thì cần phải có một liên kết trước (SqlConnection), rồi tạo nên đối tượng người dùng SqlCommand, gán mang đến nó kết nối, câu lệnh SQL tiếp nối bắt đầu thực hành được. Để thực hành, Điện thoại tư vấn một trong những cách tiến hành nhỏng ExecuteScalar, ExecuteNonQuery, ExecuteReader ... trình bày nghỉ ngơi mục phía dưới

Thiết lập các tsi mê số mang đến SqlCommmand

Các câu lệnh Squốc lộ rất có thể viết chứa tên tyêu thích số trong nó, tiếp đến quý hiếm thực của tđê mê số này được SqlCommvà gán cầm cố vào để sở hữu mệnh đề Squốc lộ thực thụ. Tyêu thích số trong chuỗi câu lệnh Squốc lộ cam kết hiệu là
tenthamso
(nhớ gồm ký kết hiệu
), ví dụ:

string queryString = "SELECT DanhmucID, TenDanhMuc, MoTa FROM Danhmuc where DanhmucID >
DanhmucID"; Thì bao gồm một tmê say số thương hiệu
DanhmucID: Giá trị đích thực của tsi mê số này thay thế sửa chữa bởi cực hiếm của của một đối tượng người tiêu dùng dạng hình SqlParameter. Tập phù hợp các tsay mê số này giữ trong thuộc tính Parameters của SqlCommand

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

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

var danhmuc = new SqlParameter("
DanhmucID", 5); // Tạo tđắm say sốcommand.Parameters.Add(danhmuc); // Thêm vào SqlCommandvar danhmuc = new SqlParameter("
DanhmucID", 5); // Tạo tđắm đuối sốcommvà.Parameters.Add(danhmuc); // Thêm vào SqlCommandHoặc chi tiết hơn như

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

Các biện pháp thi hành SqlCommand với mang công dụng tầm nã vấn

Có những cách thức không giống nhau để thực hành SqlCommvà tùy thuộc vào ngữ chình ảnh cùng với mục đích khác biệt, bao gồm gồm các cách làm như:

ExecuteNonQuery() thực hiện truy vấn - ko đề nghị trả về tài liệu gì, tương xứng tiến hành các truy tìm vấn nlỗi Update, Delete ... ExecuteReader() thi hành lệnh - trả về đối tượng hình ảnh IDataReader nhỏng SqlDataReader, từ bỏ đó hiểu được dữ liệu trả về ExecuteScalar() thì hành cùng trả về một quý giá tốt nhất - làm việc hàng đầu tiên, cột đầu tiên

Sau đây áp dụng hotline những hàm trên

Thi hành SqlComm& bởi cách thức ExecuteScalar()

Nếu thực hành SqlCommand bằng cách làm ExecuteScalar thì nó đã thực hiện câu lệnh Squốc lộ cùng trả về 1 cực hiếm là cột đầu tiên của loại thứ nhất. (Cho dù câu lệnh SQL thực tiễn trả về tập kết quả những cái những cột). Lưu ý: quý hiếm bao gồm độ dài tối đa 2033 ký kết từ

lấy ví dụ sau vẫn cyếu một mẫu bắt đầu vào bảng cùng trả về quý hiếm định danh của dòng new chèn vào (ID). Ở phía trên ckém một Shipper mới lên tiếng HoTen và Sodienthoai vào bảng Shippers

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

Thi hành cùng với ExecuteNonQuery

Thi hành SqlCommvà bởi cách tiến hành ExecuteNonQuery nó chỉ trả về công dụng là số cái tài liệu bị ảnh hưởng (số loại xóa, số chiếc update ...). Thường 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à Hotline Procedure thì tất 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 sử dụng SqlCommandusing var commvà = new SqlCommand();commvà.Connection = connection;// Câu truy nã vấn gồm: ckém tài liệu vào và mang định danh(Primary key) new chèn vàostring queryString =
ShipperID", 4);var rows_affected = commvà.ExecuteNonQuery();Console.WriteLine($"Số dòng ảnh hưởng = rows_affected");connection.Close();

Thi hành cùng với ExecuteReader

Thi hành SqlCommand cùng với cách thức thì nó sẽ tạo ra đối tượng SqlDataReader được mngơi nghỉ sẵn, từ đối tượng người sử dụng kia giúp phát âm từng cái kết quả trả về.

Một số thủ tục vào SqlDataReader

SqlDataReader.HasRows() cho biết tất cả dòng tài liệu làm sao không SqlDataReader.Read() nạp tài liệu chiếc tiếp theo sau, nếu như trả về true là tất cả cái dữ liệu nạp về thành công, giả dụ false là đã không còn tài liệu hấp thụ về. Sau khi Điện thoại tư vấn pmùi hương thực này, thì những cột của dòng rất có thể gọi bằng những toán thù tử , hoặc các hàm đọc tài liệu nlỗi .GetInt32(cột), .GetString(cột) ... SqlDataReader.Close() đóng góp Reader sau khi gọi xong dữ liệu

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

//...SqlComm& 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 System.Xml.XmlReader, trường đoản cú đối tượng người tiêu dùng kia giúp phát âm từng dòng hiệu quả trả về theo kết cấu XML.

hotline Procedure của DB

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

Quý Khách hoàn toà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 tsay mê 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) vào MS SQL Server SqlCommand cmd = new SqlCommand("getproduct", connection); cmd.CommandType = CommandType.StoredProcedure; // Tsi 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<"TenSanpham">; var gia = reader<"Gia">; Console.WriteLine($"ten gia"); connection.Close();//.. Crúc ý, những phương thức của thực hành của SqlCommand đều phải có thủ tục bất đồng nhất khớp ứng nhỏng ExecuteNonQueryAsync(), ExecuteReaderAsync() ... để mê thích thì áp dụng kỹ thuật async, nói các SqlDataReader cùng với ReadAsync()


SqlCommandTsi mê số Parameters của SqlCommandNhững cách tiến hành thực hành SqlCommandExecuteScalarExecuteNonQueryExecuteReaderExecuteXmlReaderCall procedure
*

(ADO.NET) DataAdapter DataSet cùng DataTable mày mò với áp dụng (ASP.NET Chip Core MVC) Triển knhì ứng dụng ASP..NET trên Server Linux với Kestrel Apabít Nginx (ASPhường.NET Core MVC) Giới thiệu một số admin template cùng tích hòa hợp SB Admin (ASPhường.NET Vi xử lý Core MVC) Tích vừa lòng trình quản lý tệp tin vào website (ASPhường.NET Core) Sử dụng công cụ LibMan rước thỏng viện client-side (ADO.NET) Giới thiệu avị.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ố khối 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 chxay cùng share gần như gì tôi học được ở chỗ này về kiến thức và kỹ năng lập trình sẵn PHPhường, Java, JavaScript, Android, C# ... với các kỹ năng và kiến thức technology khácDeveloped by neftekumsk.com