PDA

View Full Version : سوال: انتخاب دیتا گرید ویو و پر شد فیلدهای متناظر



nima_8m
دوشنبه 13 آذر 1391, 23:44 عصر
سلام

من میخوام وقتی روی یه سطر از دیتا گرید ویو کلیک میکنم تکس باکسهای متناظر این فیلدها پر بشه

SHD.NET
سه شنبه 14 آذر 1391, 00:31 صبح
سلام و ..
به تاپیک های زیر مراجعه کنید حتما جواب سوالتون رو پیدا می کنید .

تاپیک 1:

http://www.dotnetspark.com/kb/608-how-to-get-values-slected-cell-row-datagridviewwindows.aspx
تاپیک 2:

http://social.msdn.microsoft.com/Forums/eu/csharpgeneral/thread/dcb9c59e-5c3f-4218-893a-cff0aff7f4e2
تاپیک 3:

http://www.codeproject.com/Questions/249567/Binding-content-of-selected-row-of-datagrid-to-a-t

:چشمک:\\\موفق باشید///:چشمک:
اگ جوابتون رو پیدا نکردین همین جا اعلام کنید تا خودم براتون یه نمونه بنویسم و راهنماییتون کنم
یا علی

nima_8m
سه شنبه 14 آذر 1391, 00:48 صبح
سلام و ..
به تاپیک های زیر مراجعه کنید حتما جواب سوالتون رو پیدا می کنید .

تاپیک 1:

http://www.dotnetspark.com/kb/608-how-to-get-values-slected-cell-row-datagridviewwindows.aspx
تاپیک 2:

http://social.msdn.microsoft.com/Forums/eu/csharpgeneral/thread/dcb9c59e-5c3f-4218-893a-cff0aff7f4e2
تاپیک 3:

http://www.codeproject.com/Questions/249567/Binding-content-of-selected-row-of-datagrid-to-a-t

:چشمک:\\\موفق باشید///:چشمک:
اگ جوابتون رو پیدا نکردین همین جا اعلام کنید تا خودم براتون یه نمونه بنویسم و راهنماییتون کنم
یا علی
ممنون از راهنمایی شما ولی اینا همش به زبان سی بود

nima_8m
سه شنبه 14 آذر 1391, 01:11 صبح
جناب sh.dehnavi از راهنماییت سپاسگذارم این جواب میشه

TextBox1.Text = Me.DataGridView1.SelectedCells(0).Value

nima_8m
سه شنبه 14 آذر 1391, 01:41 صبح
مشکل جدید
وقتی اطلاعات به تکس باکسها فراخونی شد عملیاتهای حدف و اضافه و به روزرسانی انجام نمیشه

مشکل کجاست؟؟؟؟ قبلاً از دیتاگرید استفاده میکردم ولی چون نمیتونستم سلولهاشو به دلخواه تنظیم کنم از datagridview استفاده کردم که به این مشکلا خوردم

nima_8m
سه شنبه 14 آذر 1391, 10:17 صبح
کسی می تونه راهنمایی کنه؟؟؟؟

ROSTAM2
سه شنبه 14 آذر 1391, 10:51 صبح
وقتی اطلاعات به تکس باکسها فراخونی شد عملیاتهای حدف و اضافه و به روزرسانی انجام نمیشه

قبل ازین درست عمل می کرده؟

rahime
سه شنبه 14 آذر 1391, 11:10 صبح
سلام دوست عزیز
من خودم مدت زیادیه از روشی که می گم استفاده می کنم و تا حالا به مشکل برنخوردم
یه binding source بذارین و به جدولتون ارتباط بدین
datasource مربوط به دیتاگرید ویو رو هم به بانیدینگ سورس ارتباط بدین
و بعد برای تکست باکس ها در properties از قسمت data bindings گزینه text رو به اون فیلدی از جدول که می خواین مقادیر رو نشون بده ارتباط بدین.
حالا روی هر رکورد از دیتاگرید ویو کلیک کنید در تکست باکس ها نمایش داده می شه
و با عمل اضافه ویرایش و حذف هم مشکلی نداره
فقط برای اعمال تغییرات از bindingsource1.endedit استفاده کنید
و در نهایت هم جدولتون رو update کنید.

موفق باشین

nima_8m
سه شنبه 14 آذر 1391, 12:02 عصر
این اولین برنامه ای هستش که نوشتم قبلاً از دیتا گرید استفاده میکردم مشکلی هم نداشت

ولی وقتی خواستم سلولهای دیتاگرید رو به اندازه دلخواه درارم نشد برا همین رفتم سراغ دیتاگریدویو که به این مشکلات برخورد کردم

nima_8m
سه شنبه 14 آذر 1391, 13:17 عصر
اینم سورس برنامه
test.zip - 3.8 Mb (http://uplod.ir/8ndfoiukq1t3/test.zip.htm)

nima_8m
سه شنبه 14 آذر 1391, 21:14 عصر
قبل ازین درست عمل می کرده؟

بله قبلاً با دیتا گرید درست بود

سورس برنامه رو تو پست 10 گذاشتم

rahime
چهارشنبه 15 آذر 1391, 12:59 عصر
من برنامه شما رو نگاه کردم
یه bindingsource به فرمتون اضافه کنید
خب بعدش یه نمونه کدتون را مثال می زنم


Sub aval()
con = New OleDbConnection("provider=microsoft.jet.oledb.4.0 ; data source=" & Application.StartupPath() & "\db.mdb")
con.Open()
Dim da As New OleDbDataAdapter("select * from t1 order by id asc ", con)
Dim ds As New DataSet
Dim ds_seke As New DataSet
da.Fill(ds, "t1")
DataGrid1.DataSource = ds
DataGrid1.DataMember = "t1"
DataGridView1.DataSource = ds
DataGridView1.DataMember = "t1"
End Sub


اون قسمت هایی از کدتون رو که برای دیتاگریدویو نوشتین رو برای بایندینگ سورس بنویسید یعنی به این شکل تغییر بدین


BindingSource1.DataSource = ds
BindingSource1.DataMember = "t1"
da.Fill(ds,"t1")
DataGridView1.DataSource = BindingSource1

nima_8m
پنج شنبه 16 آذر 1391, 11:30 صبح
من برنامه شما رو نگاه کردم
یه bindingsource به فرمتون اضافه کنید
خب بعدش یه نمونه کدتون را مثال می زنم


Sub aval()
con = New OleDbConnection("provider=microsoft.jet.oledb.4.0 ; data source=" & Application.StartupPath() & "\db.mdb")
con.Open()
Dim da As New OleDbDataAdapter("select * from t1 order by id asc ", con)
Dim ds As New DataSet
Dim ds_seke As New DataSet
da.Fill(ds, "t1")
DataGrid1.DataSource = ds
DataGrid1.DataMember = "t1"
DataGridView1.DataSource = ds
DataGridView1.DataMember = "t1"
End Sub


اون قسمت هایی از کدتون رو که برای دیتاگریدویو نوشتین رو برای بایندینگ سورس بنویسید یعنی به این شکل تغییر بدین


BindingSource1.DataSource = ds
BindingSource1.DataMember = "t1"
da.Fill(ds,"t1")
DataGridView1.DataSource = BindingSource1

سلام
ممنون که وقت گذاشتین و جواب دادین من کدها رو همنطور که گفته بودین تغییر دادم ولی گرید ویو اینبار خالیه و هیچ اطلاعاتی رو نمایش نمیده تو حالت قبلی نمایش میداد حتی با کلیک هم تو تکس باکسها نمایش میداد ولی انگار فقط نمایش بود و به دیتابیس وصل نبود
به نظر شما مشکل کجاست؟

ehsan-68
پنج شنبه 16 آذر 1391, 11:37 صبح
سلام

من میخوام وقتی روی یه سطر از دیتا گرید ویو کلیک میکنم تکس باکسهای متناظر این فیلدها پر بشه

سلام ...

شما این دستور رو هم یه امتحان بکن ... مثال :



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

DataGridView1.Columns(1).ReadOnly = True

liddata.Text = DataGridView1.CurrentRow.Cells(1).Value.ToString


End Sub

nima_8m
پنج شنبه 16 آذر 1391, 11:59 صبح
سلام ...

شما این دستور رو هم یه امتحان بکن ... مثال :



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

DataGridView1.Columns(1).ReadOnly = True

liddata.Text = DataGridView1.CurrentRow.Cells(1).Value.ToString


End Sub


این دستور هم کار میکنه ولی مشکل اینه که انگار فقط داده ها رو از datagrid میخونه و نمایش میده وقتی ویرایش میکنی تو جدول اعمال نمیشه

ehsan-68
پنج شنبه 16 آذر 1391, 13:06 عصر
این دستور هم کار میکنه ولی مشکل اینه که انگار فقط داده ها رو از datagrid میخونه و نمایش میده وقتی ویرایش میکنی تو جدول اعمال نمیشه

خوب میشه فقط دستور ویرایشتونو بذارین تا یه نگاه بکنم ...

nima_8m
پنج شنبه 16 آذر 1391, 15:21 عصر
خوب میشه فقط دستور ویرایشتونو بذارین تا یه نگاه بکنم ...
سلام من کل برنامه رو تو پست شماره 10 گذاشتم
ممنون میشم نگاهی بهش بندازی

ehsan-68
پنج شنبه 16 آذر 1391, 19:37 عصر
یه تغییر کوچکی دادم ببین خوب شد ...

دانلود (http://s2.uplod.ir/files/7/wd2tnlj15o2hi7/test.rar) ....

nima_8m
پنج شنبه 16 آذر 1391, 22:20 عصر
یه تغییر کوچکی دادم ببین خوب شد ...

دانلود (http://s2.uplod.ir/files/7/wd2tnlj15o2hi7/test.rar) ....

لینکه کار نمیکنه

ehsan-68
جمعه 17 آذر 1391, 10:00 صبح
لینکو عوض (http://uplod.ir/jqrg2ph09s5m/test.rar.htm) کردم ...

امیدوارم کارتون راه بیوفته ...

nima_8m
جمعه 17 آذر 1391, 14:36 عصر
لینکو عوض (http://uplod.ir/jqrg2ph09s5m/test.rar.htm) کردم ...

امیدوارم کارتون راه بیوفته ...

سلام ممنون که وقت گذاشتین با کدهای که اضافه کردین درست شد
کدها رو میزارم برا دوستانی که پیگیر میشن


Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
lblarz_id.Text = DataGridView1.CurrentRow.Cells(0).Value.ToString
txt_arz.Text = DataGridView1.CurrentRow.Cells(1).Value.ToString
txt_arz_b.Text = DataGridView1.CurrentRow.Cells(2).Value.ToString
txt_arz_s.Text = DataGridView1.CurrentRow.Cells(3).Value.ToString
End Sub

nima_8m
جمعه 17 آذر 1391, 14:44 عصر
تو این برنامه اگه بخوایم بازدن کلید اینتر تکس باکس بعدی فوکس بگیر چی باید نوشت؟؟
تو وی بی 6 اینجوری مینوشتیم:
if keyAscii = 13 then text1.setfocus

ehsan-68
جمعه 17 آذر 1391, 16:52 عصر
تو این برنامه اگه بخوایم بازدن کلید اینتر تکس باکس بعدی فوکس بگیر چی باید نوشت؟؟
تو وی بی 6 اینجوری مینوشتیم:
if keyAscii = 13 then text1.setfocus

اینو تویه خاصیت keydown تکست باکس بنویسید ...


If e.KeyCode = Keys.Enter Then
SendKeys.Send("{TAB}")
End If

rahime
سه شنبه 28 آذر 1391, 22:52 عصر
سلام
من اون کد رو تست کردم بعد فرستادم مشکلی نداشت.
یه پیشنهاد میکنم
شما دیتا ست رو در حالت گرافیکی ایجاد کنید نه کد نویسی
دردسرش خیلی کمتره
و وقتی شما جدولتون رو fill کنید اطلاعات توی دیتا گرید ویوو نمایش میده
و راحت می تونید ویرایش کنید


اگه توی این زمینه کمکی از من بر میاد بفرمایید



BindingSource1.DataSource = ds

da.Fill(ds,"t1")
BindingSource1.DataMember = "t1"
DataGridView1.DataSource = BindingSource1


این خط رو هم جابجا کنید ببینین مشکل حل نمیشه

nima_8m
سه شنبه 28 آذر 1391, 23:15 عصر
سلام
من اون کد رو تست کردم بعد فرستادم مشکلی نداشت.
یه پیشنهاد میکنم
شما دیتا ست رو در حالت گرافیکی ایجاد کنید نه کد نویسی
دردسرش خیلی کمتره
و وقتی شما جدولتون رو fill کنید اطلاعات توی دیتا گرید ویوو نمایش میده
و راحت می تونید ویرایش کنید


اگه توی این زمینه کمکی از من بر میاد بفرمایید



BindingSource1.DataSource = ds

da.Fill(ds,"t1")
BindingSource1.DataMember = "t1"
DataGridView1.DataSource = BindingSource1


این خط رو هم جابجا کنید ببینین مشکل حل نمیشه

مرسی از پاسخ شما
من همیشه فکر میکردم که تو حالت کدنویسی مشکلات کمتره!
یکی از دوستان خوب یه سرس کد به برنامه اضافه کرد و مشکل حل شد
اون کدها رو هم گذاشتم که اگه کسی مشکل مشابهی داشت بتونه استفاده کنه
تو سوالات بیشمارم مزاحم شما میشم حتماً:چشمک:

nima_8m
یک شنبه 03 دی 1391, 14:54 عصر
من یه سوال داشتم

تو این برنامه اگه کاربر بخواد قیمت را ویرایش کند ابتدا از لیست آنرا انتخاب میکند سپس در تکس باکس قیمت آنرا ویرایش میکند.

ولی برا مشتری این وقتگیره و میخواد این امر سریعتر صورت بگیره مثلاً روی لیست(گرید ویو)

حالا چطور میتونم تغییرات رو روی گرید ویو انجام بدم که مستقیم روی دیتابیس انجام بشه

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

اصل برنامه در پست شماره 20
97138

nima_8m
دوشنبه 04 دی 1391, 22:17 عصر
دوستان کسی میتونه من و راهنمایی کنه؟

reza25000
شنبه 14 دی 1392, 11:10 صبح
لینکو عوض (http://uplod.ir/jqrg2ph09s5m/test.rar.htm) کردم ...

امیدوارم کارتون راه بیوفته ...


با سلام
لینک خرابه
میشه فایل رو برای من ایمیل کنید
reza.azadbari@gmail.com

reza25000
شنبه 14 دی 1392, 11:24 صبح
لینکو عوض (http://uplod.ir/jqrg2ph09s5m/test.rar.htm) کردم ...

امیدوارم کارتون راه بیوفته ...

سلام
خسته نباشید
نمیشه فایل رو دانلود کرد
اگه میشه برام ایمیل کنید
reza.azadbari@gmail.com