2012-05-10 58 views
0

我的查詢返回一個錯誤,說「對象必須實現IConvertible」。錯誤發生在.FirstOrDefault()行上。我試圖從數據庫中提取一個blob鏡像並將其返回給ajax調用。我一直在尋找2天的答案,找不到任何東西。Linq查詢錯誤從數據庫中抽取blob圖像...對象必須實現IConvertible

 [HttpGet] 
     //[Authorize] 
     public ActionResult getChartInfo(string ticker) 
     { 
      var db = new MarketSymmetricsSite.msxxdbDB(); 

      System.Linq.IQueryable<string> gQuery = (System.Linq.IQueryable<string>)(from mg in db.Markets where mg.tickerID == ticker select mg.pGraph); 
      string mGraph = gQuery.FirstOrDefault(); ; 
      byte[] test = new byte[mGraph.Length]; 
      char[] CharArray = mGraph.ToCharArray(); 

      byte[] ByteArray = new byte[CharArray.Length]; 

      for (int i = 0; i < CharArray.Length; i++) 
      { 

       ByteArray[i] = Convert.ToByte(CharArray); 

      } 

      return Json(ByteArray, JsonRequestBehavior.AllowGet); 

     } 
+1

有你看這個資源: http://stackoverflow.com/questions/1266223/retrieving-an-image-from-database-with-linq-to-sql –

+0

我沒有看到一個和它沒有爲我工作。 – user1361962

+0

@ user1361962嘗試更新示例 –

回答

0

爲了解決這一切我所要做的就是從BLOB更改數據庫中的數據類型二進制和瞧。希望這可以幫助任何需要它的人。

+0

恭喜您修復!如果可以,請一定要把你的答案標記爲「接受」(帶有綠色的選中標記),以便其他人能夠從你的成功中學習。乾杯〜 –

0

你需要使用VAR,然後從二進制轉換圖像,它的圖像文件現在

var img = (from mg in db.Markets where mg.tickerID == ticker select mg.pGraph).FirstOrDefault(); 
va rconvertedimage = ByteArrayToImage(img.Image.ToArray()); 
+0

我仍然得到相同的錯誤與此:( – user1361962

+0

@ user1361962確定它是一個圖像二進制不是字符串 –

+0

應該是..它最初是一個JPG圖像存儲在MySQL數據庫中作爲一個blob類型 – user1361962

相關問題