застрял при загрузке файла изображения в SQL Server 2008 из кода vb.net - PullRequest
0 голосов
/ 28 января 2010

хорошо, так что это код, который я использовал с этого сайта. все работает нормально, но мне нужно немного другой код для загрузки изображения, и я не знаю, что делать - вот код -

Private Sub btnAttach_Click(ByVal sender As System.Object, _ 
ByVal e As System.EventArgs) Handles btnAttach.Click 
    Dim iLength As Integer = CType(File1.PostedFile.InputStream.Length, Integer) 
    If iLength = 0 Then Exit Sub 'not a valid file 
    Dim sContentType As String = File1.PostedFile.ContentType 
    Dim sFileName As String, i As Integer 
    Dim bytContent As Byte() 
    ReDim bytContent(iLength) 'byte array, set to file size 

    'strip the path off the filename 
    i = InStrRev(File1.PostedFile.FileName.Trim, "\") 
    If i = 0 Then 
        sFileName = File1.PostedFile.FileName.Trim 
    Else 
        sFileName = Right(File1.PostedFile.FileName.Trim, Len(File1.PostedFile.FileName.Trim) - i) 
    End If 

    Try 
        File1.PostedFile.InputStream.Read(bytContent, 0, iLength) 
        With cmdInsertAttachment 
            .Parameters("@FileName").Value = sFileName 
            .Parameters("@FileSize").Value = iLength 
            .Parameters("@FileData").Value = bytContent 
            .Parameters("@ContentType").Value = sContentType 
            .ExecuteNonQuery() 
        End With 
    Catch ex As Exception 
        'Handle your database error here 
        dbConn.Close() 
    End Try 
    Response.Redirect(Request.Url.ToString) 'Refresh page

End Sub 

все работает отлично, за исключением того, что касается этой части -

    With cmdInsertAttachment 
        .Parameters("@FileName").Value = sFileName 
        .Parameters("@FileSize").Value = iLength 
        .Parameters("@FileData").Value = bytContent 
        .Parameters("@ContentType").Value = sContentType 
        .ExecuteNonQuery() 
    End With 

У меня нет этих параметров. у меня есть только 1 поле в таблице сервера SQL, которое говорит Img и имеет тип данных изображения. Как я могу использовать этот код, чтобы получить мое изображение в БД, используя этот оператор вставки? вставить в таблицу1 (img) значения (???)

1 Ответ

0 голосов
/ 28 января 2010

Попробуйте изменить таблицу, чтобы в ней были поля FileName, FileSize, FileData и ContentType.

Если вы действительно не хотите, чтобы имя, размер и тип контента хранились в базе данных, вы можете изменить

With cmdInsertAttachment 
    .Parameters("@FileName").Value = sFileName 
    .Parameters("@FileSize").Value = iLength 
    .Parameters("@FileData").Value = bytContent 
    .Parameters("@ContentType").Value = sContentType 
    .ExecuteNonQuery() 
End With 

до

With cmdInsertAttachment 
    .Parameters("@Img").Value = bytContent 
    .ExecuteNonQuery() 
End With 

И после соответствующего редактирования хранимой процедуры cmdInsertAttachment, которая должна получить данные в таблице. Что вы можете сделать с этим потом, это чье-то предположение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...