البته به نظرم از نظر امنیتی مشکلی وجود نداره و به دردسرش نمی ارزه ولی با این حال میگم:
اول باید توی دیتابیس sql یک فیلد از نوع image ( میتونی از Binary هم استفاده کنی) ایجاد کنی
بعد توی صفحه یک file field قرار میدیم من اسمشو گذاشتم fileupload1 خوب یک باتن هم قرار میدم
ابتد کتابخانه های زیر رو اضافه کن
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
خوب حالا اون عکس با یک stream میخونیمش و طول محتوای اونو بدست میاریم و بوسیله یک streamreader محتویات اونو داخل یک آرایه از نوع بایت ذخیره میکنیم تا بشه ریختش توی دیتابیس
Dim imgstream As Stream = FileUpload1.PostedFile.InputStream
Dim imglen As Integer = FileUpload1.PostedFile.ContentLength
Dim imgdata(imglen) As Byte
imgstream.Read(imgdata, 0, imglen)
خوب حالا کافیه یک ارتباط با دیتابیست برقرار کنی و این imgdata که از نوع بایت هست رو Insert کنی داخل دیتابیست
Dim con As New SqlConnection(constr)
Dim cmd As New SqlCommand("insert_img", con)
Dim param As SqlParameter = cmd.Parameters.Add("@img", SqlDbType.Image)
param.Value = imgdata
cmd.CommandType = CommandType.StoredProcedure
con.Open()
cmd.ExecuteNonQuery()
con.Close()
کد های بالا تنها جاییش که مهمه اینه : SqlDbType.Image یعنی دیتا تایپت از نوع image باشه
خوب برای خوندن از دیتابیس با یک datareader میخونیمش و با یک binarywriter روی صفحه چاپش می کنیم ( میشه کارای دیگه هم کرد... به سلیقه خودت )
Dim con As New SqlConnection(eclass.constr)
Dim cmd As New SqlCommand("Select_img", myConnection)
con.Open()
Dim myDataReader As SqlDataReader
myDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
Do While (myDataReader.Read())
Response.BinaryWrite(myDataReader.Item("img"))
Loop
con.Close()
موفق باشید