Linq查询错误从数据库中提取blob图像...对象必须实现IConvertible

时间:2012-05-10 03:27:54

标签: c# subsonic

我的查询返回错误,说“对象必须实现IConvertible”。错误发生在.FirstOrDefault()行上。我试图从数据库中提取blob图像并将其返回到ajax调用。我一直在寻找2天的答案而找不到任何答案。

        [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);

        }

2 个答案:

答案 0 :(得分:0)

你需要使用var然后从二进制转换图像,这样它现在就是一个图像文件

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

答案 1 :(得分:0)

要解决这个问题,我所要做的就是将数据库中的数据类型从blob更改为二进制文件。希望这能帮助任何可能需要它的人。