Các trường hợp khác biệt khi chúng ta dùng ba loại này là gì? Tôi nên dùng ở đâu and chớ nên dùng ở đâu?
ExecuteScalarthường được dùng khi truy cập của bạn trả về một Ngân sách độc tôn. Nếu như nó trả về nhiều hơn thế, thì công dụng là cột đầu tiên của hàng đầu tiên. Một ví dụ có khả năng là SELECT IDENTITY AS “Identity”.ExecuteReaderđược dùng cho bất kỳ tập hợp công dụng nào có tương đối nhiều hàng / cột (ví dụ SELECT col1, col2 from sometable:).ExecuteNonQuery thường được dùng cho các câu lệnh SQL không tồn tại công dụng (ví dụ: UPDATE, INSERT, v.v.). Tôi nghĩ ExecuteNonQuery được dùng khi bạn phải gọi các giấy tờ thủ tục được tàng trữ sẽ trả về một tập hợp các bảng. ExecuteNonQuery cũng hoạt động nếu như bạn có câu lệnh trả về trong giấy tờ thủ tục được tàng trữ. stackoverflow.com/questions/6210027/…
ExecuteNonQuery ():
sẽ chỉ hoạt động với Truy cập biện pháp hành động (Tạo, Chỉnh sửa, Thả, Chèn, Cập nhật, Xóa).Trả về số hàng được tiến hành triển khai bởi Truy cập.Loại trả về là intGiá trị trả về là tùy chọn and có khả năng được gán cho 1 biến số nguyên.
Bài Viết: Executescalar là gì
ExecuteReader ():
sẽ hoạt động với Truy cập Biện pháp hành động and Chưa phải Biện pháp hành động (Chọn)Trả về tập hợp các hàng được chọn bởi Truy cập.Loại trả về là DataReader.Chi phí trả về là bắt buộc and nên được gán cho 1 đối tượng người sử dụng khách hàng DataReader khác.
ExecuteScalar ():
sẽ hoạt động với các Truy cập Chưa phải Biện pháp hành động có chứa các hàm tổ hợp.Trả về Ngân sách hàng đầu tiên and cột đầu tiên của công dụng truy cập.Loại trả về là đối tượng người sử dụng khách hàng.Chi phí trả về là bắt buộc and nên được gán cho 1 biến loại bắt buộc.
URL tham chiếu:
Mỗi cái là một kiểu triển khai khác biệt.
ExecuteScalar sẽ là loại truy cập sẽ trả về một Ngân sách độc tôn.
Một ví dụ sẽ trả về một id được tạo sau thời điểm chèn.
INSERT INTO my_profile (address) VALUES (“123 Fake St.”); SELECT CAST(scope_identity() AS int)
ExecuteReader cung ứng có nhu cầu cho bạn một trình đọc tài liệu, cho phép bạn đọc toàn bộ các cột của công dụng cùng một lúc.
Một ví dụ sẽ là lấy thông báo hồ sơ cho 1 hoặc nhiều người dùng.
SELECT * FROM my_profile WHERE id = “123456”
ExecuteNonQuery là bất kỳ SQL nào không trả về Ngân sách, nhưng sự thật đang tiến hành triển khai một vài dạng công việc như chèn xóa hoặc chỉnh sửa thứ gì đó.
Một ví dụ sẽ là cập nhật hồ sơ của người sử dụng trong cơ sở tài liệu.
UPDATE my_profile SET address = “123 Fake St.” WHERE id = “123456”
Dường như như bạn cũng luôn tồn tại thể dùng ExecuteReader để tiến hành triển khai các công việc được tiến hành triển khai bởi cả ExecuteScalar & ExecuteNonQuery, vậy tại sao lại dùng hai cái kia? bất kỳ quyền lợi năng suất? Một nguyên do để tránh lạm dụng ExecuteReader là nó có khả năng sẽ bị giữ người đọc đó ở sát bên cho tới khi bạn làm xong. Đối với tất cả những điều này, bạn nhu cầu biết một vài thông báo chi tiết về chiêu thức hoạt động của chúng để dùng chúng một chiêu thức hiệu quả tốt nhất. Những gì mình đã đề ra tại đây là một vài hướng dẫn tốt nhất có thể.
Từ các dữ liệu (để ý: MSDN là một tài nguyên có ích khi chúng ta nhu cầu biết mọi thứ hoạt động!):
ExecuteScalar
Cần sử dụng phương thức ExecuteScalar để truy xuất một Ngân sách (ví dụ: Ngân sách tổ hợp) từ cơ sở tài liệu. Điều đó nhu cầu ít mã hơn đối với dùng phương thức ExecuteReader, tiếp đến tiến hành triển khai các làm việc mà bạn phải để khởi tạo được 1 Ngân sách độc tôn bằng chiêu thức dùng tài liệu được trả về bởi một SqlDataReader.
Xem Ngay: Cbre có nghĩa là gì chân thành và ý nghĩa là gì – Lĩnh Vực
ExecuteReader
Gửi CommandText tới Connection and tạo một SqlDataReader.
… and từ SqlDataReader …
Thỏa mãn chiêu thức đọc luồng hàng chỉ chuyển tiếp từ cơ sở tài liệu SQL Server. Lớp này không còn được thừa hưởng.
ExecuteNonQuery
Bạn cũng luôn tồn tại thể dùng ExecuteNonQuery để tiến hành triển khai các hoạt động hạng mục (ví dụ: truy cập cấu tạo của cơ sở tài liệu hoặc tạo các đối tượng người sử dụng khách hàng cơ sở tài liệu như bảng) hoặc để điều chỉnh tài liệu trong cơ sở tài liệu mà hoàn toàn không dùng DataSet bằng chiêu thức triển khai các câu lệnh UPDATE, INSERT hoặc DELETE.
Để thêm vào những gì người khác đã đăng:
ExecuteScalar trả về một chiêu thức khái niệm cột ngoài cùng bên trái từ hàng đầu tiên của tập công dụng từ truy cập; bạn cũng luôn tồn tại thể ExecuteScalar một nhân viên SELECT * FROM, nhưng bạn chỉ nhận được ô đầu tiên của rất nhiều hàng công dụng Thường được dùng cho các truy cập trả về một Ngân sách độc tôn. Tôi không khẳng định chắc chắn 100% về SQLServer nhưng trong Oracle, bạn wouldnt dùng nó để chạy một CHỨC NĂNG (mã cơ sở tài liệu trả về một Ngân sách độc tôn) and mong muốn nó có khả năng sẽ bị cung ứng có nhu cầu cho bạn Ngân sách trả về của hàm dù rằng công dụng trả về Ngân sách độc tôn. . Tuy nhiên, nếu như bạn đang làm việc hàm như một trong những phần của truy cập, ví dụ: SELECT SUBSTR (“abc”, 1, 1) FROM DUAL thì nó có khả năng sẽ bị cung ứng có nhu cầu Ngân sách trả về do trong thực tế là Ngân sách trả về được tàng trữ ở trên cao cao cùng bên trái ô của tập hàng công dụng
ExecuteNonQuery sẽ được dùng để chạy các giấy tờ thủ tục, hàm and truy cập được tàng trữ trong cơ sở tài liệu để chỉnh sửa tài liệu (CHÈN / CẬP NHẬT / XÓA) hoặc chỉnh sửa cấu tạo cơ sở tài liệu (TẠO BẢNG …). Đôi khi, Ngân sách trả về của lệnh gọi là thể hiện cho biết thêm có bao nhiêu hàng bị ảnh hưởng bởi hoạt động nhưng hãy kiểm tra dữ liệu DB để bảo đảm an toàn điều này
ExecuteReader() triển khai truy cập SQL trả về đối tượng người sử dụng khách hàng DBDataReader của nhà cung ứng có nhu cầu tài liệu cung ứng có nhu cầu quyền truy vấn chỉ chuyển tiếp and chỉ đọc cho công dụng của truy cập.
ExecuteScalar()y như như ExecuteReader()phương thức được thiết kế cho truy cập singleton ví dụ điển hình như thu được con số bản ghi.
ExecuteNonQuery() triển khai truy cập không hoạt động với tạo, xóa, cập nhật, chèn)
ExecuteNonQuery
Phương thức ExecuteNonQuery đó sẽ chỉ được dùng cho các câu lệnh chèn, cập nhật and xóa, Tạo and SET. Phương thức ExecuteNonQuery sẽ trả về số hàng được tiến hành triển khai bằng các làm việc INSERT, DELETE hoặc UPDATE.
ExecuteScalar
Rất là nhanh để mang các Ngân sách đơn côi từ cơ sở tài liệu. Xúc tiến Scalar sẽ trả về Ngân sách cột lô hàng đơn tức là Ngân sách đơn, khi tiến hành triển khai Truy cập SQL hoặc giấy tờ thủ tục Đã tàng trữ bằng đối tượng người sử dụng khách hàng lệnh. ExecuteReader
Execute Reader sẽ được dùng để trả về tập hợp các hàng khi tiến hành triển khai Truy cập SQL hoặc giấy tờ thủ tục Đã tàng trữ bằng đối tượng người sử dụng khách hàng lệnh. Cái này chỉ chuyển tiếp truy xuất các bản ghi and nó được dùng để đọc các Ngân sách bảng từ đầu tiên đến sau cùng.
Phương thức ExecuteNonQuery sẽ trả về số hàng được tiến hành triển khai bằng các làm việc INSERT, DELETE hoặc UPDATE. Phương thức ExecuteNonQuery đó sẽ chỉ được dùng cho các câu lệnh chèn, cập nhật and xóa, Tạo and SET. (Tham khảo thêm)
ExecuteScalar sẽ trả về Ngân sách cột lô hàng đơn tức là Ngân sách đơn, khi tiến hành triển khai Truy cập SQL hoặc giấy tờ thủ tục Đã tàng trữ bằng đối tượng người sử dụng khách hàng lệnh. Rất là nhanh để mang các Ngân sách đơn côi từ cơ sở tài liệu. (Tham khảo thêm)
ExecuteReader sẽ được dùng để trả về tập hợp các hàng khi tiến hành triển khai Truy cập SQL hoặc giấy tờ thủ tục Đã tàng trữ bằng đối tượng người sử dụng khách hàng lệnh. Cái này chỉ chuyển tiếp truy xuất các bản ghi and nó được dùng để đọc các Ngân sách bảng từ đầu tiên đến sau cùng. (Tham khảo thêm)
ExecuteNonQuery: thường được dùng khi không tồn tại gì trả về từ các câu lệnh Sql tựa như những làm việc chèn, cập nhật, xóa.
Xem Ngay: Catena có nghĩa là gì chân thành và ý nghĩa là gì
cmd.ExcecuteNonQuery();ExecuteScalar:
Nó sẽ được dùng khi truy cập Sql trả về một Ngân sách độc tôn.
Int b = cmd.ExcecuteScalar();ExecuteReader
Nó sẽ được dùng khi truy cập Sql hoặc Giấy tờ thủ tục đã tàng trữ trả về nhiều hàng / cột
SqlDataReader dr = cmd.ExecuteReader();để biết thêm thông báo, bạn cũng luôn tồn tại thể nhấp vào đó http://www.dotnetqueries.com/Article/148/-difference-between-executescalar-executereader-executenonquery
Khi dùng website của chúng tôi, bạn xác thực rằng bạn đã đọc and hiểu Chế độ cookie and Chế độ bảo mật thông tin của chúng tôi.
Thể Loại: San sẻ Kiến Thức Cộng Đồng