【问题标题】:stuck while uploading an image file in sql server 2008 from vb.net code从 vb.net 代码上传 sql server 2008 中的图像文件时卡住了
【发布时间】:2010-01-27 21:07:44
【问题描述】:

好的,这是我从这个站点使用的代码。一切正常,但我需要一些不同的代码来上传图片,我不知道该怎么做 - 这是代码-

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 

我没有这些参数。我在 sql server 表中只有 1 个字段表示 Img 并具有图像数据类型。如何使用此代码使用此插入语句在 db 中获取我的图像? 插入 table1 (img) 值 (???)

【问题讨论】:

  • 如果你贴出实际的表结构,我们会更容易回答

标签: sql-server vb.net image


【解决方案1】:

考虑将您的表格更改为具有 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 存储过程进行适当编辑后,该存储过程应该会获取表中的数据。之后你可以用它做什么是任何人的猜测。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多