#asp.net #sql-server #file-upload #sql-update
#asp.net #sql-сервер #загрузка файла #sql-обновление
Вопрос:
Я не могу найти правильный код для сохранения filename в виде строки в базе данных. Мой код выглядит следующим образом:
FileUpload1.SaveAs(Server.MapPath("pimages/" FileUpload1.FileName))
MsgBox(FileUpload1.FileName)
Dim newUsr As MembershipUser = Membership.GetUser()
Dim newUserId As Guid = CType(newUsr.ProviderUserKey, Guid)
' Insert a new record into UserProfiles
Dim connectionString As String = ConfigurationManager.ConnectionStrings("LocalSqlServer").ConnectionString
Dim insertSql As String = "UPDATE UserProfiles Set (Pic = @Pic) Where (UserId = @UserID)"
Using myConnection As New SqlConnection(connectionString)
myConnection.Open()
Dim myCommand As New SqlCommand(insertSql, myConnection)
myCommand.Parameters.AddWithValue("@UserId", newUserId)
myCommand.Parameters.AddWithValue("@Pic", FileUpload1.FileName)
myCommand.ExecuteNonQuery()
myConnection.Close()
End Using
Кто-нибудь может это исправить, пожалуйста?
Комментарии:
1. Какие ошибки / исключения это дает вам?
Ответ №1:
Я полагаю, что ваша проблема может быть связана с вашим идентификатором пользователя. При использовании динамического SQL оба идентификатора GUID и строки должны быть в одинарных кавычках:
Dim insertSql As String = "UPDATE UserProfiles Set (Pic = '@Pic') Where (UserId = '@UserID')"
Комментарии:
1. В таблице UserProfiles также есть другие поля, но я просто хочу обновить поле pic именем файла изображения.
2. это в блоке try catch, а в разделе catch есть окно массажа, просто отображающее ОШИБКУ.
3. Обновил ответ: забыл, что вам также нужно будет заключить @Pic в кавычки.