2008-11-12 46 views
7

Tôi có một DataSet với một DataTable điền chính xác một đơn DataRow thông qua TableAdapter.Làm thế nào để bạn đọc một mảng byte từ một DataRow trong C#?

Tôi có thể lấy dữ liệu từ DataRow với mã như thế này:

dataFileID = (int)this.dataFileDataRow["DataFileID"]; 
dataFileName = (string)this.dataFileDataRow["DataFileName"]; 
dataFileDate = (DateTime)this.dataFileDataRow["DataFileDate"]; 

Tôi có một cột gọi là datafile loại varbinary(max).

Khi tôi cố gắng lấy dữ liệu của cột đó từ cùng một số DataRow như trên, tôi không nhận được gì.

byte[] fileFromDatabase = (byte[])this.dataFileDataRow["DataFile"]; 

Nếu tôi đặt một điểm break ở vị trí này, tôi có thể nhìn vào dataFileDataRow, nhìn vào tài sản ItemArray và thấy rằng các dữ liệu nhị phân được ngồi ở vị trí 5 trong ItemArray.

Tôi đã thử truy cập trực tiếp vào ItemArray bằng chỉ mục của nó nhưng mảng byte không được sao chép vào biến fileFromDatabase.

Tôi cũng đã nhận thấy rằng việc thêm fileFromDatabase để đồng hồ của tôi tạo ra lỗi này:

"The name 'fileFromDatabase' does not exist in the current context"

Việc thực hiện vẫn còn trong khối giống như định nghĩa của fileFromDatabase vì vậy tôi không hiểu làm thế nào nó sẽ được ra khỏi bối cảnh .

Tôi đã đặt cấu hình Visual Studio thành Release thay vì Gỡ lỗi. Điều này đã khiến tôi không nhìn thấy thông tin gỡ lỗi thời gian thực mà tôi đang tìm kiếm khi thử kiểm tra tệpFromDatabase. Sau khi chuyển từ Release sang Debug, tôi có thể thấy biến trong đồng hồ ngay bây giờ và có thể xác minh rằng mã ở trên hoạt động chính xác.

+0

Vui lòng chỉ định ngôn ngữ bạn đang làm việc. –

+0

Tôi đang viết bằng ngôn ngữ C# –

Trả lời

2

Mã ở trên hoạt động, đảm bảo bạn đặt trình gỡ lỗi để biên dịch cho Gỡ lỗi, KHÔNG phát hành.

Keith

Các vấn đề liên quan