Làm cách nào để chuyển đổi một DataSet thành DataReader?Làm cách nào để chuyển đổi DataSet a thành DataReader?
Trả lời
Bạn có thể sử dụng đoạn mã sau để thay đổi dữ liệu để DataReader
:
DataTableReader rd = ds.Tables[0].CreateDataReader();
DataSet
có phương pháp gọi là CreateDataReader
sẽ tạo một DataTableReader
, nhưng tôi không nghĩ rằng bạn có thể tạo DataReader
.
Số liệu là một đối tượng trong bộ nhớ bị ngắt kết nối. DataReader là một đối tượng một chiều được kết nối.
Vì vậy, tôi đoán điều đó là không thể.
Có thực sự cần thiết không?
https://msdn.microsoft.com/en-us/library/system.data.common.dbdatareader(v=vs.110).aspx - Đọc luồng luồng chỉ chuyển tiếp từ nguồn dữ liệu. Không nói gì về việc 'Kết nối' với cơ sở dữ liệu. – JJS
Nếu bạn muốn lặp lại thông qua DataSet, bạn không cần DataReader. DataSet là một đối tượng bị ngắt kết nối trong bộ nhớ để lặp qua nó bằng cách sử for-each:
foreach(var row in ds.Tables["YourTable"])
{
var value = row.Field<int>("ID"); // etc
}
Cả hai DataSet và DataTable lộ một CreateDataReader phương pháp mà tạo ra một DataTableReader. Kiểm tra những liên kết này -
http://msdn.microsoft.com/en-us/library/system.data.dataset.createdatareader.aspx
http://msdn.microsoft.com/en-us/library/system.data.datatable.createdatareader.aspx
Bạn không thể chuyển đổi một DataSet tới một DbDataReader.
Tuy nhiên, bạn có thể tạo DbDataReader để đọc kết quả từ DataSet bằng cách gọi phương thức CreateDataReader trên DataSet.
Tuy nhiên, điều này có vẻ như một điều kỳ lạ muốn làm. Bạn có thể đơn giản lặp qua các kết quả chứa trong DataSet bằng cách sử dụng thuộc tính Tables của DataSet và thuộc tính The Rows của DataTable. Sử dụng DbDataReader sẽ hạn chế bạn chỉ chuyển tiếp truy cập vào các kết quả. Lợi ích duy nhất tôi có thể thấy từ việc sử dụng DbDataReader sẽ là nếu bạn có một cuộc gọi API để thực hiện cuộc gọi API nào làm tham số.
Nếu Số liệu của bạn là kết quả của lệnh SELECT từ cơ sở dữ liệu, bạn sẽ có thể lấy DbDataReader bằng cách gọi DbCommand.ExecuteReader(). Điều này sẽ cắt ra DataSet hoàn toàn và kết quả trong một cái gì đó là hiệu quả hơn.
- 1. Cách chuyển đổi DataSet thành DataTable
- 2. Chuyển đổi dữ liệu thành datareader
- 3. Điều gì tốt hơn: DataSet hoặc DataReader?
- 4. Làm cách nào để chuyển đổi một DataTable thành IDatareader?
- 5. Cách dễ nhất để chuyển đổi "a/b/c" thành ["a/b/c", "a/b", "a"]
- 6. Cách thành ngữ để chuyển đổi A => Seq [B]
- 7. Làm thế nào để chuyển đổi A [B [C]] thành B [A [C]] nếu A và B là monads?
- 8. Sự khác biệt giữa Datareader, DataAdapter, Dataset, DataView
- 9. Làm thế nào để chuyển đổi Datareader Kết quả của DbType.Time để Timespan Object?
- 10. Clustering a sparse dataset of binary vector
- 11. Làm cách nào để chuyển đổi vectơ thành mảng ô?
- 12. Làm thế nào để chuyển đổi một Seq [A] thành một bản đồ [Int, A] bằng cách sử dụng giá trị của A làm khóa trong bản đồ?
- 13. Làm cách nào để chuyển đổi NaN thành 0?
- 14. Làm cách nào để chuyển đổi bitmap thành video?
- 15. Làm cách nào để chuyển đổi chuỗi C++ thành int?
- 16. Làm cách nào để chuyển đổi NSMutableArray thành NSString?
- 17. Làm cách nào để chuyển đổi jstring thành wchar_t *
- 18. Làm cách nào để chuyển đổi Array [Node] thành NodeSeq?
- 19. Làm cách nào để chuyển đổi LinearLayout thành hình ảnh?
- 20. Làm cách nào để chuyển đổi chuỗi thành UTF8?
- 21. Làm cách nào để chuyển đổi FBProfilePictureView thành UIImage?
- 22. Làm cách nào để chuyển đổi NSString thành NSData?
- 23. Làm cách nào để chuyển đổi System.Windows.Media.SolidcolorBrush thành System.Drawing.Color?
- 24. Làm cách nào để chuyển đổi danh sách thành ObservableCollection?
- 25. Làm cách nào để chuyển đổi StreamReader thành chuỗi?
- 26. Làm cách nào để chuyển đổi bit thành byte?
- 27. Làm cách nào để chuyển đổi Double [] thành double []?
- 28. Làm cách nào để chuyển đổi WriteableBitmap thành BitmapImage?
- 29. Làm cách nào để chuyển đổi LF thành CRLF?
- 30. Làm cách nào để chuyển đổi chuỗi thành mảng mảng?
tôi cảm thấy có một lỗ hổng trong những gì bạn đang cố gắng làm. Bạn đang cố gắng làm gì ở cấp độ cao hơn? – Dann
Bạn không thể. Nếu bạn muốn giải thích thêm, vui lòng cung cấp thêm thông tin. –