Câu hỏi của tôi là cách lấy số hàng được truy vấn trả về bằng cách sử dụng SqlDataReader
trong C#. Tôi đã nhìn thấy một số câu trả lời về điều này nhưng không ai được xác định rõ ràng ngoại trừ một trong những tiểu bang để làm một vòng lặp trong khi với phương pháp Read()
và tăng truy cập.Cách lấy số hàng bằng cách sử dụng SqlDataReader trong C#
Vấn đề của tôi là tôi đang cố gắng điền vào mảng đa chiều với hàng đầu tiên là tên tiêu đề cột và mỗi hàng sau đó sẽ là dữ liệu hàng.
Tôi biết rằng tôi có thể đổ nội dung trong một điều khiển Danh sách và không lo lắng về điều đó, nhưng đối với bản chỉnh sửa cá nhân của riêng tôi và tôi cũng muốn kéo dữ liệu vào và ra khỏi mảng khi tôi chọn và hiển thị nó ở các định dạng khác nhau. Vì vậy, tôi nghĩ rằng tôi không thể làm Read()
và sau đó tăng ++ cách vì điều đó có nghĩa là tôi sẽ phải mở Read()
và sau đó mở lại để nhận số lượng hàng và sau đó là dữ liệu cột.
Chỉ cần một ví dụ nhỏ về những gì tôi đang nói về:
int counter = 0;
while (sqlRead.Read())
{
//get rows
counter++
}
và sau đó một vòng lặp for để chạy qua các cột và pop
something.Read();
int dbFields = sqlRead.FieldCount;
for (int i = 0; i < dbFields; i++)
{
// do stuff to array
}
Henk là đúng: không có thành viên của DataReader cho phép bạn nhận được số hàng vì nó là một người đọc chỉ chuyển tiếp. Bạn tốt hơn trước hết làm việc đếm và sau đó thực hiện truy vấn, có lẽ trong một truy vấn nhiều kết quả, do đó bạn chỉ nhấn cơ sở dữ liệu một lần. – flipdoubt
Vấn đề với số lượng chuyên ngành là có khả năng số đếm khác với số hàng trả về vì ai đó đã thay đổi dữ liệu theo cách dẫn đến số hàng được trả về. –
Pete, bạn nói đúng, nó sẽ đòi hỏi một IsolationLevel đắt tiền. –