Câu hỏi phỏng vấn ADO.NET
Câu hỏi

Sự khác biệt giữa ExecuteScalar, ExecuteReaderExecuteNonQuery là gì?

Câu trả lời

ExecuteScalar, ExecuteReader và ExecuteNonQuery là ba phương thức thực thi truy vấn trong ADO.NET, mỗi phương thức có mục đích sử dụng khác nhau:

  • ExecuteScalar: Phương thức này được sử dụng khi truy vấn chỉ trả về một giá trị duy nhất, thường là từ cột đầu tiên của hàng đầu tiên trong kết quả truy vấn. Ví dụ, khi bạn muốn lấy tổng số lượng, giá trị trung bình hoặc bất kỳ giá trị tổng hợp nào khác. ExecuteScalar sẽ trả về một đối tượng và bạn cần chuyển đổi đối tượng này về kiểu dữ liệu mong muốn[1][2][6][11].

  • ExecuteReader: Phương thức này được sử dụng để thực thi các truy vấn SELECT và trả về một đối tượng SqlDataReader, cho phép bạn đọc dữ liệu trả về từng hàng một. Đây là phương thức thích hợp khi bạn cần truy xuất nhiều hàng từ cơ sở dữ liệu vì nó không lưu trữ toàn bộ kết quả truy vấn trong bộ nhớ, giúp tiết kiệm tài nguyên hệ thống[1][2][6][9][12].

  • ExecuteNonQuery: Phương thức này thường được sử dụng để thực thi các câu lệnh SQL không trả về kết quả dạng bảng, như INSERT, UPDATE, DELETE, hoặc các câu lệnh DDL như CREATE TABLE, ALTER TABLE. ExecuteNonQuery trả về số lượng hàng bị ảnh hưởng bởi câu lệnh SQL, ví dụ như số hàng được thêm mới hoặc cập nhật[1][2][3][4][5][7][15][17].

Mỗi phương thức có đặc điểm và mục đích sử dụng riêng, tùy thuộc vào nhu cầu cụ thể của truy vấn bạn cần thực hiện trong ứng dụng của mình.

Citations:
[1] https://stackoverflow.com/questions/2974154/what-is-the-difference-between-executescalar-executereader-and-executenonquery
[2] https://www.c-sharpcorner.com/interview-question/what-is-difference-between-executescaler-executenonquery-and-executedatareader
[3] https://www.codingfusion.com/Post/Difference-between-ExecuteReader-ExecuteScalar-and
[4] https://www.o...

middle

middle

Gợi ý câu hỏi phỏng vấn

expert

Phương pháp nào là tốt nhất và nhanh nhất để chèn 2 triệu dòng dữ liệu vào SQL Server?

middle
junior

SqlCommandBuilder trong ADO.NET là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào