使用asp.net,vb.script将图像上传到网页,并使用access作为我的数据库

时间:2012-12-05 18:45:10

标签: asp.net vbscript

有任何帮助吗? 我的代码如下;

Imports System.IO
Imports System.Data
Imports System.Data.SqlClient 
Imports System.Data.OleDb

Partial Class Gallery
    Inherits System.Web.UI.Page

    Dim dbInsert As New OleDb.OleDbCommand
    Dim dbConnect As New OleDb.OleDbConnection
    Dim Line As String = Environment.NewLine
    Dim Message As String
    Dim dt As New DataTable()



    Protected Sub BtnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnUpload.Click

        Dim connection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " & _
       Server.MapPath("App_Data\Web.accdb"))

        If FileUpload1.PostedFile IsNot Nothing Then
            Dim FileName As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
            Dim Picture As String = TxtPicturename.Text

            'Save files to disk
            FileUpload1.SaveAs(Server.MapPath("GalleryPics/" & FileName))

            Dim strQuery As String = "insert into Picture (FileName, FilePath)" _
             & " values(@FileName, @FilePath)"

            Dim cmd As New SqlCommand(strQuery)
            cmd.Parameters.AddWithValue("@FileName", FileName)
            cmd.Parameters.AddWithValue("@FilePath", "Gallery/" & FileName)
            cmd.CommandType = CommandType.Text

            Dim sql As String = "INSERT INTO Picture (PictureID, Picturename, CategoryNo) VALUES ('" & TxtPicturename.Text & "','" & FileUpload1.FileName & "');"
            dbInsert.CommandText = sql
            dbInsert.CommandType = CommandType.Text
            dbInsert.Connection = connection
            dbInsert.ExecuteNonQuery()
            MsgBox("Pictue successfully uploaded for " + Line + TxtPicturename.Text)

        End If

    End Sub
    Function checkFiletype(ByVal filename As String) As Boolean
        Dim ext As String = Path.GetExtension(filename)
        Select Case ext.ToLower()
            Case ".gif"
                Return True
            Case ".prg"
                Return True
            Case ".jpg"
                Return True
            Case "jpeg"
                Return True
            Case Else
                Return False
        End Select
    End Function

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load




    End Sub
End Class

1 个答案:

答案 0 :(得分:0)

在尝试运行查询之前,您没有与数据库建立开放连接。

在尝试使用您的查询之前添加dbConnect.Open()

            dbConnect.Open() ''<------ HERE
            Dim cmd As New SqlCommand(strQuery)
            cmd.Parameters.AddWithValue("@FileName", FileName)
            cmd.Parameters.AddWithValue("@FilePath", "Gallery/" & FileName)
            cmd.CommandType = CommandType.Text

当你完成它时别忘了关闭它...... I.E

            dbInsert.ExecuteNonQuery()
            dbConnect.Close() '' <--------- HERE

<强>更新

请参阅本教程以获取插入的一个很好的示例。 http://idealprogrammer.com/net-languages/code-samples/vbnet-aspnet-sql-command-insert-statement-source-code/