Не удалось сохранить имя файла для загрузки в базе данных

#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 в кавычки.