PDA

View Full Version : مساوی قراردان عکس ذخبره شده در دبتا گریدویو با پیکچر باکس روی فرم با کلیک



farhad85
دوشنبه 09 دی 1392, 22:34 عصر
سلام
چطوری هنگام لود شدن فرمم یا کلیک روی دیتا گرید ویو همه ی فبلدها برابر تکس ها وپسکچز باکسم باشن
متشکرم

sagggad
دوشنبه 09 دی 1392, 22:47 عصر
داداش لطفا منظورت رو بهتر توضیح بده...
چه طوری فیلدها برابر پیکچرباکس بشن؟؟

sagggad
دوشنبه 09 دی 1392, 22:57 عصر
ببین دوست عزیز،من با عکس گذاشتن در گرید ویو کار نکردم،اما مثلا اگر بخوایم متن های داخل گرید ویویی که دوتا ستون به نام های Name و Family داره رو با دو تکس باکس باهمین نام ها برابر کنیم از کدهای زیر استفاده میکنیم:


For i = 0 To DataGridView1.Rows.Count - 2
TextBox1.Text = DataGridView1.Rows(i).Cells(0).Value
TextBox2.Text = DataGridView1.Rows(i).Cells(1).Value
Next


حالا احتمالا برای عکس هم از دستور زیر بشه استفاده کرد:


For i = 0 To DataGridView1.Rows.Count - 2
PictureBox1.Image = DataGridView1.Rows(i).Cells(0).Value
PictureBox2.Image = DataGridView1.Rows(i).Cells(1).Value
Next

موفق باشید:لبخندساده:

farhad85
دوشنبه 09 دی 1392, 22:58 عصر
سلام نگاه کم من روی فرمم یه سر ی تکست و یه پسکچرباکس دارم که وقتی پرشون میکنم دکمه دخیره رو میزنم داخل دبتا گزیدم منتقل میشن / حالا فکر کن 100 نت رکورد ثبت کردم همراه باعکس!
میخوام هروقت که روی یه رکورد تو دیتا گزیرم کلیک میکنم تکسای روی فرمم+پیگچرباکسم تمام اطلاغات اون ردیف انتخاب شده رو نمایش بدن حتی عکسشو هم نشون بده

sagggad
دوشنبه 09 دی 1392, 23:00 عصر
ببین کدم بدردت میخوره؟

farhad85
دوشنبه 09 دی 1392, 23:00 عصر
این پیغامو داد
Unable to cast object of type 'System.String' to type 'System.Drawing.Image'.

sagggad
دوشنبه 09 دی 1392, 23:02 عصر
این کد رو دادی دیگه؟؟:

PictureBox1.Image = DataGridView1.Rows(i).Cells(0).Value

farhad85
دوشنبه 09 دی 1392, 23:07 عصر
چند تا عکس در دیتابیس ذخیره شده است
این عکس ها را در دیتا گرید نمایش دادم
حالا می خواهم روی یک سطر گرید کلیک کنم عکس مورد نظر همان سطر در پیکچر باکس نمایش داده شود
سه نگاهی به این لینک بنداز؟
http://barnamenevis.org/showthread.php?415953-چگونه-میتوان-عکس-ذخیره-شده-در-دیتابیس-را-در-پیکپر-باکس-نمایش-داد-(بوسیله-توابع-linq-to-sql)&highlight=پیکپر+باکس

sagggad
دوشنبه 09 دی 1392, 23:08 عصر
برای این که این ارور رو نده بر مبنای عکس زیر عمل کن:
114646

behrooz69
پنج شنبه 12 دی 1392, 15:37 عصر
سلام دوستان از ساعت 9 شب تا 6 صبح دنبال فهمیدن مشکل کارم بودم و بالاخره تونستم پیداش کنم .
هوررررررااااااااااااااااا ا !!! مشکل همه رو هم حل کردم .

حتما برنامه هایی رو دیدید که وقتی رو Data Grid View کلیک میکنید عکس تو دیتا پایین صفحه باز میشه یا متن سطر هاش داخل تککس باکس ها نشون میده یا تو فرم دیگه باز میشه وقتی دابل کلیک میکنیم . خو حالا من میگم چجوری :

من تو برنامم عکس هارو داخل دیتابیس Sql خودم Save کردم و اونو وصل کردم به DataGridView .

حالا با کلیک رو سطر مورد نظر هم اطلاعات متن هاش داخل تکس باکس هایی که مشخص کردم نشون داده میشن هم عکس تو PictureBox مورد نظر


اول بیاین این تابع رو تعریف کنید :

Public Function GetDataToImage(ByVal pData As Byte()) As Image

Try

Dim imgConverter As New ImageConverter()

Return TryCast(imgConverter.ConvertFrom(pData), Image)

Catch ex As Exception

MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])

Return Nothing

End Try

End Function


بعد بیای تو رویداد CellClick مربوط به DataGridView خودتون این چند خط کد رو بنویسید :


Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick



'// aval bayad image ma convert beshe az tarigh tabe GetDataToImage o bad neshon dade she



PicBoxInShowInfo.Image = GetDataToImage(CType(DataGridView1.CurrentRow.Cell s(7).Value, Byte()))



TextBox1.Text = DataGridView1.CurrentRow.Cells(0).Value.ToString.T rim

TextBox2.Text = DataGridView1.CurrentRow.Cells(1).Value.ToString.T rim



End Sub


توضیحشم اینه که وقتی عکسی تو دیتابیس ذخیره میشه آرایه ای از byte هاست و وقتی از روش
DataGridView1.CurrentRow.Cells(7).Value
استفاده میکنید با اررور اینکه این خط String هست و به BYte تبدیل نمیشه مواجه میشین وو واسه اینکار باید اول اونو توسط یه تابع بیاید به Byte تبدیل کنید و BYte به BYte تو PictureBox نشون بدید .

2 خط پایینم به صورت آزمایشیه و فقط 2 سلول رو تو تکس باکس ما نشون میده . آدرس سلول ها از 0 شروع میشه .


یا حق