Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET-“;无法访问已关闭的文件";尝试读取文件内容时_Vb.net_Visual Studio - Fatal编程技术网

VB.NET-“;无法访问已关闭的文件";尝试读取文件内容时

VB.NET-“;无法访问已关闭的文件";尝试读取文件内容时,vb.net,visual-studio,Vb.net,Visual Studio,这是我的表单代码 我正在尝试读取文件的内容,以便能够将其作为blob存储在DB中 Try Dim fs = New FileStream(TextBox1.Text, FileMode.Open, FileAccess.Read) Dim rawData = New Byte(fs.Length) {} fs.Read(rawData, 0, fs.Length) fs.Close() ' Get File

这是我的表单代码

我正在尝试读取文件的内容,以便能够将其作为blob存储在DB中

    Try
        Dim fs = New FileStream(TextBox1.Text, FileMode.Open, FileAccess.Read)
        Dim rawData = New Byte(fs.Length) {}
        fs.Read(rawData, 0, fs.Length)
        fs.Close()

        ' Get File size
        Dim filesize As Long = fs.Length

        ' Get Extension
        Dim extension As String = Path.GetExtension(TextBox1.Text)

        'SQL query
        Dim cmdText = "INSERT INTO files VALUES (file_id, @fname, @content, @size, @ext, @comments, @vers, @auth);"

        'commit SQL query with connection statement
        Dim com As New MySqlCommand(cmdText, con)

        'place fields into parameters for the query
        com.Parameters.AddWithValue("@fname", filename.Text)
        com.Parameters.AddWithValue("@content", rawData)
        com.Parameters.AddWithValue("@size", filesize)
        com.Parameters.AddWithValue("@ext", extension)
        com.Parameters.AddWithValue("@comments", comments.Text)
        com.Parameters.AddWithValue("@vers", version.Text)
        com.Parameters.AddWithValue("@auth", home.userid.Text)

        'this will commit the record to the DB
        con.Close()
        con.Open()
        com.ExecuteNonQuery()
        con.Close()

    Catch ex As Exception

        MsgBox(ex.Message)

    End Try

如下面的链接所示,如果文件已关闭或正在关闭,Length属性可以引发IOException

您正在访问关闭文件后的长度。只需按如下所示翻转它们

  ' Get File size
   Dim filesize As Long = fs.Length
   fs.Close()

你能把所有的例外都放进去吗。我猜这是fs.Length访问后的密切责任例外这是正确的!愚蠢的错误!谢谢你,酷。。。也将其添加为答案;)