PDA

View Full Version : کار با عکس و پایگاه داده



drwatson
سه شنبه 10 اردیبهشت 1387, 12:08 عصر
سلام
از عزیزانی
که می دونن چطور میشه در یه بانک داده sql از طریق vb.net عکس ذخیره و بازیابی
کرد خواهشمندم دستوراتشو اینجا بفرمایند
متشکرم

eyes_shut_number1
سه شنبه 10 اردیبهشت 1387, 12:24 عصر
دوست عزیز اگه سرچ کنی 20 بار این موضوع بحث شده و 20 بارم جواب داده شده!

البته 19 بارشو خودم سوال کرده بودم ;-)
سرچ کنید

drwatson
سه شنبه 10 اردیبهشت 1387, 12:58 عصر
عزیز با تشکر از شما خوب چه عیب داره شما همینجا جواب بده بزار بشه 21 بار
در ضمن سرچ کردم ولی یه چیزی که بدردم بخوره نیافتم

headphone
سه شنبه 10 اردیبهشت 1387, 13:32 عصر
كتاب برنامه نويسي بانك اطلاعاتي vb.net نوشته كوروش مقدسي اين مسئله را بخوبي توضيح داده .

eyes_shut_number1
سه شنبه 10 اردیبهشت 1387, 15:31 عصر
بفرما اینم برنامش با سرچچچچچچچچ
کلیک کن اینجا (http://barnamenevis.org/forum/attachment.php?attachmentid=11762&d=1193166149)

eyes_shut_number1
سه شنبه 10 اردیبهشت 1387, 15:33 عصر
برای بازیابی عکس
----------------
PrivateSub DrawToScale(ByVal img As Image)
pic.Image = New Bitmap(img)
EndSub
PrivateSub LoadImage()
OnErrorGoTo fix
con.Open()
Dim SQLImage AsString = "SELECT Photo FROM Questionnaire WHERE FNO='" & FNO.Text & "'"
Dim cmd AsNew SqlClient.SqlCommand
cmd.Connection = con
MsgBox(SQLImage)
cmd.CommandText = SQLImage
Dim b() AsByte
b = cmd.ExecuteScalar
If (b.Length > 0) Then
Dim stream AsNew MemoryStream(b, True)
stream.Write(b, 0, b.Length)
DrawToScale(New Bitmap(stream))
stream.Close()
EndIf
con.Close()
fix:
EndSub
---------------
برای ذخیره عکس
----------------
txtFileName.Text = ImagePath
Dim fs AsNew FileStream(txtFileName.Text, FileMode.OpenOrCreate, FileAccess.Read)
Dim MyData(fs.Length) AsByte
fs.Read(MyData, 0, CInt(fs.Length))
fs.Close()
newrow("Photo") = MyData
--------------
برای ویرایش عکس
---------------
Dim Cmd AsNew SqlClient.SqlCommand
Dim strq AsString
Dim strcon AsString
Dim con As SqlClient.SqlConnection
strcon = "Data Source=" & serverip & ";Initial Catalog=" & dbuser & ";Integrated Security=True"
con = New SqlClient.SqlConnection(strcon)
con.Open()
Try
strq = " UPDATE Questionnaire "
strq &= " SET Photo = @ImageF "
strq &= " WHERE FNO = '" & FNO.Text & "'"
'Cmd = New SqlCommand
Cmd.CommandType = System.Data.CommandType.Text
Cmd.Connection = con
Cmd.CommandText = strq
Dim fs AsNew FileStream(OpenDialog.FileName, FileMode.OpenOrCreate, FileAccess.Read)
Dim MyData(fs.Length) AsByte
fs.Read(MyData, 0, CInt(fs.Length))
fs.Close()
Cmd.Parameters.Add(New SqlClient.SqlParameter("@ImageF", System.Data.SqlDbType.Image, MyData.Length, System.Data.ParameterDirection.Input, 0, 0, 1, System.Data.DataRowVersion.Current, False, MyData, "", "", ""))
Cmd.ExecuteNonQuery()
ReturnTrue
Catch ex As Exception
MsgBox(".ویرایش تصویر انجام نشد" & vbCrLf & ex.Message.ToString, MsgBoxStyle.Critical)
ReturnFalse
Finally : Cmd.Dispose()
EndTry
con.Close()

drwatson
سه شنبه 10 اردیبهشت 1387, 19:18 عصر
سلام

آقا بسیار از راهنماییهتون ممنونم اینرو حتما تست میکنم
ولی یه سوال دارم این کد رو من برای پرکردن filestream برای نوشتن اون توی دیتابیس
نوشتم اما همش Error میده اگه میشه بگید دلیلش چیه

کد:

strsql = "INSERT INTO Ptable (pid,fname,lname, Pic) VALUES (@pid,@FName,@LName, @Pic)"

Dim fs AsNew FileStream("c:\bliss.jpg", FileMode.Open)
(محل خطا) PictureBox1.Image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg)(Dim aArray(CType(fs.Length, Integer) - 1) AsByte

fs.Position = 0
fs.Read(aArray, 0, aArray.Length)
fs.Close()


خطا:
Object reference not set to an instance of an object.

از همتون متشکرم:تشویق:
بابا ما تازه کارها که جز اینجا دستمون به جایی بند نیست:افسرده: