我的asp.net mvc项目之一,我正在尝试将图像保存到SQL Server数据库表:enter image description here
在C#控制器中,我正在上传图片,并将其转换为byte []数组,以便可以将其保存到数据库中。我的代码如下所示。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "CustIDNO, EDate,LetterNo,LetterFrom,LetterType,Comments, ValueTime")] WarningPic warningPic, HttpPostedFileBase img)
{
byte[] fileData = null;
if (img != null)
{
//Here i am converting image to byte array
using (var binaryReader = new BinaryReader(img.InputStream))
{
fileData = binaryReader.ReadBytes(Request.Files[0].ContentLength);
}
}
if (ModelState.IsValid)
{
warningPic.FileName = warningPic.CustIDNO.ToString();
warningPic.Picture = fileData;
warningPic.SlNo = 9;
db.WarningPics.Add(warningPic);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(warningPic);
}
一切都应该没问题,但是我遇到了一个神秘的错误,例如: enter image description here
The data types image and varbinary(max) are incompatible in the equal to operator.
描述:在执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。