So I have a class for connecting to db and for the execution of queries there. This class is called "DBHelper". I won't spoil this class much 'cause I don't have a problem there. The problem with my code is that I can upload the picture successfully to the database, but when it comes to VB .Net, There is an error saying "Parameter Invalid".
This code is for my store procedure:
This is my code for uploading picture:
As you can see in my code, there includes my source. Thank you for any further help.
This code is for my store procedure:
USE [testing] GO /****** Object: StoredProcedure [dbo].[insertImage] Script Date: 01/01/2013 10:17:57 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[insertImage] @pic image AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; insert into ImageTable(SImage) values (@pic) END
This is my code for uploading picture:
Imports System.Windows.Forms Imports System.IO Public Class Form1 Public cs, command As String Private mImageFile As Image Private mImageFilePath As String Public DBConhelper As DBHelper = Nothing Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try cs = "Data Source = NINJANINA\SQLEXPRESS; Initial Catalog = testing; Persist Security Info = False; User ID = sa; Password= sa" Me.DBConhelper = New DBHelper(cs) Me.DBConhelper.ConnectToDatabase() Catch ex As Exception MsgBox(ex.Message) End Try End Sub Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click ' My Resource: http://devpod.wordpress.com/2011/12/04/viewing-saving-an-image-to-ms-sql-server-in-vb-net/ Dim fdlg As OpenFileDialog = New OpenFileDialog fdlg.Title = "Set Photo" fdlg.InitialDirectory = "C:\Users\Niña\Pictures" fdlg.Filter = "All Files|*.*|Bitmap Files (*)|*.bmp;*.gif;*.jpg" fdlg.FilterIndex = 4 fdlg.FileName = "" fdlg.RestoreDirectory = True If fdlg.ShowDialog() = Windows.Forms.DialogResult.OK Then tbImagePath.Text = fdlg.FileName Else Exit Sub End If Dim sFilePath As String sFilePath = fdlg.FileName If sFilePath = "" Then Exit Sub End If If System.IO.File.Exists(sFilePath) = False Then Exit Sub Else tbImagePath.Text = sFilePath mImageFilePath = sFilePath End If pbImage.Image = Image.FromFile(tbImagePath.Text) End Sub Private Function uploadFile() pbImage.Image.Dispose() Dim ok As Boolean = False Try If Me.tbImagePath.Text = String.Empty Then ok = False Return ok Exit Function End If Catch ex As Exception MsgBox(ex.Message) End Try Dim fs As FileStream = New FileStream(mImageFilePath.ToString(), IO.FileMode.Open) Dim img As Byte() = New Byte(fs.Length) {} fs.Read(img, 0, fs.Length) fs.Close() mImageFile = Image.FromFile(mImageFilePath.ToString()) Dim imgType As String = Path.GetExtension(mImageFilePath) mImageFile = Nothing command = "insertImage" Dim pic As New System.Data.SqlClient.SqlParameter("@pic", SqlDbType.Image) pic.Value = img Try Me.DBConhelper.ExecuteSPNonQuery(command, pic) ok = True Catch ex As Exception MsgBox(ex.Message) ok = False Return ok Exit Function End Try Return ok End Function Private Sub btnUpload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpload.Click uploadFile() End Sub End Class
As you can see in my code, there includes my source. Thank you for any further help.