2010-04-17 39 views
5

Tôi cần đọc BLOB và lưu trữ nó theo byte [], trước khi tiến hành Deserializing;Chuyển đổi sang Byte Array sau khi đọc BLOB từ SQL trong C#

xem xét:

//Reading the Database with DataAdapterInstance.Fill(DataSet); 
    DataTable dt = DataSet.Tables[0]; 
    foreach (DataRow row in dt.Rows) 
    { 
    byte[] BinDate = Byte.Parse(row["Date"].ToString()); // convert successfully to byte[] 

    } 

tôi cần sự giúp đỡ trong bản Tuyên Bố này # C, như tôi không thể chuyển đổi một loại đối tượng vào một byte []. Lưu ý, trường "Ngày" trong bảng là một blob và không thuộc loại Ngày;

Giúp đánh giá cao; Soham

+0

Bạn có thể xem câu trả lời tôi đã đưa ra cho một câu hỏi tương tự: http://stackoverflow.com/questions/625029/how-do-i-store-and-retrieve-a-blob-from -sqlite/625485 # 625485 –

Trả lời

11

Chỉ cần cast giá trị cho một mảng byte:

byte[] binDate = (byte[])row["Date"]; 

Một blob trong các bản đồ cơ sở dữ liệu vào một mảng byte trong .NET, vì vậy người lái xe cơ sở dữ liệu đã thực hiện việc chuyển đổi cho bạn.

+0

Cảm ơn rất nhiều, giúp đánh giá cao nó đã hoạt động! – Soham

0

Nếu "Ngày" là một blob, nó nên đã đi ra như một byte [] - không chắc chắn lý do tại sao bạn đang gọi ToString(), nhưng Byte.Parse sẽ chỉ phân tích một đơn byte.

+0

Có cảm ơn Marc, tôi chỉ đang làm thử và sai. – Soham

2
byte[] binDate = (byte[])row["Date"]; 
+0

Dọn dẹp có, phải. Nhưng tôi không thể "đánh dấu" đánh dấu và chấp nhận cả hai câu trả lời của bạn. – Soham

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