2013-02-06 44 views
0

我目前在我正在做的程序中有最惱人的錯誤,我會認真感謝任何幫助或建議,可以幫助我解決它。我遇到問題的那部分程序是一個表單,它將選定的圖像加載到一個圖片框中,然後在點擊「保存」按鈕後將其保存到MS Access數據庫中。當執行「Browse_Click」事件時,它會提示您搜索圖像位置並將其加載到圖片框(pbImage)中。這個位工作正常,併成功地將它加載到它的picturebox。我遇到的問題是當我嘗試將圖像保存到我的訪問數據庫時,出現以下參數異常錯誤「路徑不是合法窗體」。 據我所知我所有的代碼是完全有效的,因爲它以前工作,但一兩個小時前,這個錯誤突然開始出現。參數異常 - 路徑不是合法形式(vb.net)

以下代碼的第一部分是當我想將圖片加載到圖片框時執行的內容。下面的部分是'保存'代碼。

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.Transactions嚴重:0:http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled未處理的exceptionAlphaHolidayCottages.vshost.exeSystem.ArgumentException,mscorlib,Version = 4.0.0中發生類型'System.ArgumentException'的第一次機會異常。 0,Culture = neutral,PublicKeyToken = b77a5c561934e089該路徑不是合法的形式。在System.IO.Path.NormalizePath(字符串路徑,布爾fullCheck,Int32 maxPathLength)

感謝您的時間和幫助,如果有人可以幫助我解決問題,將是在月球。

克里斯

+0

在該行上放置一個斷點並檢查您的'imgName'變量的值並將其發回。 – tcarvin

+0

在我看來,你正試圖用名稱「」保存文件,單個空間。這不是有效的文件名稱。 –

回答

1

您設置imgName爲「」在btnBrowse_Click結束,所以當你保存btnSave_Click下的文件,你正在試圖將它保存到文件名「」。

嘗試在btnBrowse_Click的末尾刪除imgName = " ",或在保存之前爲其分配imgName一個正確的文件名。

相關問題