In SQL server we have scenarios where we need to store image into the databse
One way is to store image URL into the database by creating it into a folder
Other way is to store entire image into the databse
For doing that you need to create column in databse
ColumnName Type
Image varbinary(max)
We will store image in byte format thts why we made it of binary type
Public Function UpdateUserProfile(ByVal user As User) As UserResponse
Dim reader As SqlDataReader
Dim profileImagePath As String = String.Empty
Dim isProfileImageUploaded As Boolean = False
Dim userResponse As New UserResponse()
Try
Using sqlConnection As New SqlConnection(ConnectionString)
If sqlConnection.State = ConnectionState.Closed Then
sqlConnection.Open()
End If
''If user.ProfileImageByteArray IsNot Nothing AndAlso user.ProfileImageByteArray.Length > 0 Then
'' Try
'' Dim memoryStream As New MemoryStream(user.ProfileImageByteArray)
'' Dim fileStream As New FileStream(System.Web.Hosting.HostingEnvironment.MapPath("~/ProfileImages/") + user.AccessToken + ".png", FileMode.Create)
'' memoryStream.WriteTo(fileStream)
'' memoryStream.Close()
'' fileStream.Close()
'' fileStream.Dispose()
'' profileImagePath = KnownConstants.ProfileImageBaseAddress + user.AccessToken + ".png"
'' isProfileImageUploaded = True
'' Catch ex As Exception
'' Logger.LogException(ex)
'' profileImagePath = KnownConstants.ProfileImageBaseAddress + KnownConstants.DefaultProfileImage
'' End Try
''End If
Dim parameterList As New List(Of SqlParameter)()
parameterList.Add(New SqlParameter("@AccessToken", user.AccessToken))
parameterList.Add(New SqlParameter("@FirstName", user.FirstName))
parameterList.Add(New SqlParameter("@LastName", user.LastName))
parameterList.Add(New SqlParameter("@ProfileImage", System.Convert.FromBase64String(user.ProfileImage)))
parameterList.Add(New SqlParameter("@JobRoleID", user.JobRoleID))
parameterList.Add(New SqlParameter("@CompanyID", user.CompanyID))
parameterList.Add(New SqlParameter("@Password", user.Password))
parameterList.Add(New SqlParameter("@PasswordSalt", Guid.NewGuid().ToString()))
reader = BaseRepository.ExecuteReader(sqlConnection, CommandType.StoredProcedure, "uspUpdateUserProfile", parameterList.ToArray())
If reader.HasRows Then
While reader.Read()
user.ID = If(reader("ID") IsNot Nothing, If(Not String.IsNullOrEmpty(Convert.ToString(reader("ID"))), Convert.ToInt32(Convert.ToString(reader("ID")).Trim()), 0), 0)
user.FirstName = If(reader("FirstName") IsNot Nothing, Convert.ToString(reader("FirstName")).Trim(), String.Empty)
user.LastName = If(reader("LastName") IsNot Nothing, Convert.ToString(reader("LastName")).Trim(), String.Empty)
user.ProfileImage = If(reader("ProfileImage") IsNot Nothing, Convert.ToBase64String(reader("ProfileImage")).Trim(), String.Empty)
user.JobRoleID = If(reader("JobRoleID") IsNot Nothing, Convert.ToString(reader("JobRoleID")).Trim(), String.Empty)
user.Email = If(reader("Email") IsNot Nothing, Convert.ToString(reader("Email")).Trim(), String.Empty)
user.CompanyID = If(reader("CompanyID") IsNot Nothing, Convert.ToString(reader("CompanyID")).Trim(), String.Empty)
user.Password = If(reader("Password") IsNot Nothing, Convert.ToString(reader("Password")).Trim(), String.Empty)
Exit While
End While
userResponse.Status = True
userResponse.Message = "Profile details successfully updated."
Else
userResponse.Status = False
userResponse.Message = KnownConstants.UnauthorizedMessage
End If
End Using
Catch ex As Exception
Logger.LogException(ex)
userResponse.Status = False
userResponse.Message = "Error occurred while updating profile."
End Try
userResponse.data = user
Return userResponse
End Function
So in this way we store Base 64 string in binary form
For accessing and displaying image we reconvert bytes into base 64 string
0 Comment(s)