PDA

View Full Version : سوال: كار با عكس



brownbear
چهارشنبه 21 اردیبهشت 1390, 09:21 صبح
سلام من از اين كد براي خواندن اطلاعاتم استفاده مي كنم ولي وقتي مي خوام عكس را فراخواني كنم ايراد مي گيره
ديتابيسم هم sql است
با تشكر

Dim cmd1 AsNew SqlCommand("select * from information ", Cnn)
cmd1.CommandText = "select * from information Where (code=" & txtcode.Text & ")"
cmd1.Parameters.Clear()

Cnn.Open()
cmd1.ExecuteNonQuery()
Cnn.Close()
Dim dr As SqlDataReader
Cnn.Open()
dr = cmd1.ExecuteReader
While (dr.Read())
txtname.Text = dr("fname") : txtcard.Text = dr("card")
txtfamily.Text = dr("lname") : txtfather.Text = dr("faname")
txtsh.Text = dr("sh") : covahed.Text = dr("vahed")
cosemat.Text = dr("semat")
txtuser.Text = dr("usern")
txtpass.Text = dr("pass") : cmbgrade.Text = dr("grade")
picbox.Image = (dr("aks"))

وقتي مي خواد picbox.image رو لود كنه ايراد مي گيره

brownbear
پنج شنبه 22 اردیبهشت 1390, 15:28 عصر
سلام
یعنی اینقدر سخته
اگه میشه یه کدی برام بنویسید که یه عکسو تو دیتابیس جستجو کنه و تو picbox نمایش بده

Navid Asadi
جمعه 23 اردیبهشت 1390, 12:15 عصر
دوست عزیز نحوه ذخیره سازی شما بسیار مهم هستش...
من برای این کار از روش زیر برای ذخیره استفاده میکنم:
Cmd.Parameters.Add(New SqlClient.SqlParameter("Pic", SqlDbType.Binary)).Value = IO.File.ReadAllBytes(pic)
البته میتونید از همین روش برای ذخیره به صورت image هم استفاده کنید...
اما برای فراخوانی :
Dim arrPicture() As Byte = CType(DataGridView1.CurrentRow.Cells("pic").Value, Byte())
Dim ms As New MemoryStream(arrPicture)
PictureBox2.BackgroundImage = System.Drawing.Image.FromStream(ms)

خیلی ها میگن این روش باعث کندی میشه که من موافق نیستم!

Navid Asadi
جمعه 23 اردیبهشت 1390, 12:17 عصر
راستی یادم رفت بگه تو روش بالا من عکس رو از grid خواندم که با خوندن از dataview و dataset فرقی نداره

brownbear
شنبه 24 اردیبهشت 1390, 02:36 صبح
سلام
من درست متوجه نشدم
من می خوام یک عکس رو که تو دیتابیس ذخیره کردم توی یک PICBOX بیارم شما عکسو از دیتاگرید آوردین من می خوام مثلا با شماره عکس اونو توی دیتابیس جستجو کنم و توی PIC BOX نمایش بدم

Navid Asadi
شنبه 24 اردیبهشت 1390, 10:06 صبح
خوب به جای :
DataGridView1.CurrentRow.Cells("pic").Value
کد زیر رو بنویس ()برای دیتاست :
dataset.Tables("Your Table").Rows(Your row index).Item(your item index or name)

brownbear
یک شنبه 25 اردیبهشت 1390, 00:53 صبح
با تشکر از شما دوست عزیز