how to store and retrieve image from sql database using c# in mvc
BY LOVE Note : - name attribute of the image file must match with the action parameter - Datatype of Image column in sql will be varbinary(max) 1- CSHTML page code @using (Html.BeginForm("UserProfile", "UserHome", FormMethod.Post, new { enctype = "multipart/form-data" })) { <input type="file" id="postedFile" name="postedFile" class="custom-file-input" border="1"> <input type="submit" class="btn btn-primary" value="Save Changes"> } 2- Controller code [HttpPost] public ActionResult UserProfile(UserProfileViewModal modal, HttpPostedFileBase postedFile) { User objUser = new User(); objUser.First_Name = modal.FirstName; objUser.Last_Name = modal.LastName; objUser.Email = modal.Email; objUser.Company = modal.Company; objUser.Address = modal.Address; objUser.TimeZone = modal.TimeZone; objUser.UserName = modal.UserName; objUser.Password = modal.Password; //Image CODE if (postedFile != null) { byte[] bytes; using (BinaryReader br = new BinaryReader(postedFile.InputStream)) { bytes = br.ReadBytes(postedFile.ContentLength); modal.UserImage = bytes; } } // Call the method here to update the USER record. string Query = "Update Users set Password='" + modal.Password + "', First_Name='" + modal.FirstName + "', Last_Name='" + modal.LastName + "'," + "Email='" + modal.Email + "', Address='" + modal.Address + "', Company='" + modal.Company + "', TimeZone='" + modal.TimeZone + "' where UserName='" + modal.UserName + "'"; objUsersBLL.UpdateUserData(Query, out Exception ex); Query = "Update Users set UserImage=@imgByte where UserName='" + modal.UserName + "'"; using (SqlCommand cmd = new SqlCommand(Query)) { cmd.Parameters.AddWithValue("@imgByte", modal.UserImage); objUsersBLL.UpdateUserDataImageScalarSQL(cmd, out Exception exs); } return RedirectToAction("UserProfile"); } 3- Controller code to get image from database [HttpGet] public ActionResult UserProfile() { string UserName = ""; if (TempData["Username"] != null) { UserName = TempData["Username"].ToString(); TempData.Keep("Username"); } User user = objUsersBLL.GetUserDettailsEnityList(UserName, out Exception ex); UserProfileViewModal objUserProfileViewModal = new UserProfileViewModal(); //Image Code if (user.UserImage != null) { ViewBag.Base64String = user.UserImage; } return View(objUserProfileViewModal); } 4- Now showing the image on CSHTML page from the viewbag if (ViewBag.Base64String != null) { <img style="height:100px; width:100px;" alt="" src="data:image/jpg;base64,@Convert.ToBase64String(ViewBag.Base64String)" /> } else { <p>No image</p> }