参数异常 - 路径不是合法形式(vb.net)

时间:2013-02-06 22:05:20

标签: vb.net argumentexception

我目前正在制作一个程序中最烦人的错误,我会非常感谢任何帮助我解决它的帮助或建议。我遇到问题的程序部分是一个表单,它将选定的图像加载到图片框中,然后在点击“保存”按钮后将其保存到MS Access数据库中。执行“Browse_Click”事件时,它会提示您搜索图像位置并将其加载到图片框(pbImage)中。这个位工作正常并成功将其加载到图片框中。我遇到的问题是当我尝试将图像保存到我的访问数据库时,我得到以下参数异常错误“路径不是合法形式”。 据我所知,我的所有代码都是完全正常的,因为它之前有效,但是一两个小时前,这个错误突然出现了。

以下代码的第一部分是当我想将图片加载到图片框中时执行的内容。下面的部分是“保存”代码。

Public Class Manage_Cottages
Dim imgName As String
Dim daImage As OleDbDataAdapter
Dim dsImage As DataSet
Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
    Dim dlgImage As FileDialog = New OpenFileDialog()
    dlgImage.Filter = "Image File (*.jpg;*.bmp;*.gif)|*.jpg;*.bmp;*.gif"
    If dlgImage.ShowDialog() = DialogResult.OK Then
        imgName = dlgImage.FileName
        Dim selectedFileName As String = dlgImage.FileName
        txtPath.Text = selectedFileName
        Dim newimg As New Bitmap(imgName)
        pbImage.SizeMode = PictureBoxSizeMode.StretchImage
        pbImage.Image = DirectCast(newimg, Image)
    End If
    dlgImage = Nothing
    imgName = " "
End Sub'

保存代码

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
    Dim cnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=..\Debug\CourseworkDatabase.mdb"
    Dim CN As New OleDbConnection(cnString)
    CN.Open()

     If imgName <> "" Then
        Dim fs As FileStream
        fs = New FileStream(imgName, FileMode.Open, FileAccess.Read) <----- where the error occurs.
        Dim picByte As Byte() = New Byte(fs.Length - 1) {}
        fs.Read(picByte, 0, System.Convert.ToInt32(fs.Length))
        fs.Close()
        Dim strSQL As String
        strSQL = "INSERT INTO Cottage_Details([Image]) values (" & " @Img)"
        Dim imgParam As New OleDbParameter()
        imgParam.OleDbType = OleDbType.Binary
        imgParam.ParameterName = "Img"
        imgParam.Value = picByte
        Dim cmd As New OleDbCommand(strSQL, CN)
        cmd.Parameters.Add(imgParam)
        cmd.ExecuteNonQuery()
        MessageBox.Show("Image successfully saved.")
        cmd.Dispose()
        CN.Close()
    End If
End Sub

下面是即时窗口中显示内容的前几行(不确定是否对诊断问题有任何帮助)

mscorlib.dll中出现'System.ArgumentException'类型的第一次机会异常 System.Transactions严重:0:http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled未处理的exceptionAlphaHolidayCottages.vshost.exeSystem.ArgumentException,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089该路径不是合法格式。在System.IO.Path.NormalizePath(String path,Boolean fullCheck,Int32 maxPathLength)

感谢您的时间和帮助,如果有人可以帮助我解决问题,那将会登月。

克里斯

1 个答案:

答案 0 :(得分:1)

您在btnBrowse_Click的末尾将imgName设置为“”,因此当您在btnSave_Click下保存文件时,您试图将其保存到文件名“”。

尝试删除imgName = " "末尾的btnBrowse_Click,或在保存之前为imgName指定正确的文件名。