現在、作成中のプログラムで最も苛立たしいエラーが発生しています。修正に役立つヘルプやアドバイスをいただければ幸いです。私が問題を抱えているプログラムの部分は、選択した画像をピクチャ ボックスにロードし、[保存] ボタンをクリックすると 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
また、以下は、即時ウィンドウに表示されるものの最初の数行です (問題の診断に役立つかどうかはわかりません)。
タイプ 'System.ArgumentException' の初回例外が mscorlib.dll System.Transactions Critical で発生しました: 0 : http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled Unhandled exceptionAlphaHolidayCottages .vshost.exeSystem.ArgumentException、mscorlib、Version=4.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089パスが有効な形式ではありません。System.IO.Path.NormalizePath (文字列パス、ブール値の fullCheck、Int32 maxPathLength) で
あなたの時間と助けに感謝します.誰かが私が問題を解決するのを手伝ってくれるなら、月を越えて.
クリス