PDA

View Full Version : سوال: پر کردن DataGridView



parsaid
چهارشنبه 09 فروردین 1391, 10:27 صبح
سلام دوستان؛ عیدتووون مبارک

84807

بنده از دستورات زیر برای پر کردن DataGridView استفاده میکنم:

Imports System.Data
Imports System.Data.OleDb

Public Class Form1
Dim Cnn As OleDbConnection = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\data.mdb")
Dim Da As OleDbDataAdapter
Dim Ds As DataSet = New DataSet

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Ds.Clear()
Ds.Dispose()
Cnn.Dispose()
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Da = New OleDbDataAdapter("select * from Kol", Cnn)
Da.Fill(Ds, "Kol")
Me.DataGViewK.DataSource = Ds
Me.DataGViewK.DataMember = "Kol"
Cnn.Close()

Da = New OleDbDataAdapter("select * from Moein", Cnn)
Da.Fill(Ds, "Moein")
Me.DataGViewM.DataSource = Ds
Me.DataGViewM.DataMember = "Moein"
Cnn.Close()

Da = New OleDbDataAdapter("select * from Sanad", Cnn)
Da.Fill(Ds, "Sanad")
Me.DataGViewS.DataSource = Ds
Me.DataGViewS.DataMember = "Sanad"
Cnn.Close()
End Sub

Private Sub DataGViewK_RowEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGViewK.RowEnter
If e.ColumnIndex = 0 Then
Da = New OleDbDataAdapter("select * from Moein where kolid=" + DataGViewK.Item(e.ColumnIndex, e.RowIndex).Value.ToString(), Cnn)
Ds = New DataSet
Ds.Clear()
Da.Fill(Ds, "Moein")
Me.DataGViewM.Refresh()
Me.DataGViewM.DataSource = Ds
Me.DataGViewM.DataMember = "Moein"
Cnn.Close() : End If
End Sub

Private Sub DataGViewM_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGViewM.CellContentClick
If e.ColumnIndex = 1 Then
Da = New OleDbDataAdapter("select * from Sanad where moeinid=" + DataGViewM.Item(e.ColumnIndex, e.RowIndex).Value.ToString(), Cnn)
Ds = New DataSet
Ds.Clear()
Da.Fill(Ds, "Sanad")
Me.DataGViewS.Refresh()
Me.DataGViewS.DataSource = Ds
Me.DataGViewS.DataMember = "Sanad"
Cnn.Close() : End If
End Sub

End Class


مشکلی که دارم، این هستش که وقتی میخوام نام ستونها رو بصورت دستی در DataGridViewها ست بکنم، دیگه اطلاعاتی در DataGridViewها ریخته نمیشه (شکل زیر) !!

84808

لطفاً راهنمای بفرمایین... ارادتمند

lastmory
چهارشنبه 09 فروردین 1391, 12:18 عصر
سلام
data Grid View یه خاصیت داره با نام Header Text که همین اسم فارسی رو بده
توی خاصیت datapropertyName هم اسم فیلدت که از سلکت داره میاد رو بده
مثال
فیلد اول ---> HeaderText = حساب کل و DataPropertyName = KolId

parsaid
چهارشنبه 09 فروردین 1391, 12:31 عصر
ممنون که جواب دادین
میشه لطف کنین و با استفاده از کدهای بنده DataGridView رو تغییر بدین؟

lastmory
چهارشنبه 09 فروردین 1391, 12:41 عصر
منظورتون مقدار دادن همین خاصیتهایی ه که گفتم؟؟؟
این خاصیتها رو تو قسمت Edit خود گرید ویو مقدار دهی کن

parsaid
چهارشنبه 09 فروردین 1391, 12:45 عصر
وقتی مقدار دهی میکنم ........ بازم اطلاعاتم رو نشوووم نمیده :خجالت:

Hybrid
چهارشنبه 09 فروردین 1391, 12:58 عصر
سلام دوست عزیز امیدوارم ساله خوبی رو داشته باشین و همیشه موفق باشید ،


راه حا دوستمون خوبه ولی کدنویسی رو زیاد میکنه و امکان اشتباه رو بالا میبره برای اینکار(تغییر عنوان های دیتا گرید) میتونین از کد زیر استفاده کنید :

به جای مثلا :

Select p_name from table1

بنویس :

from table [نام] select p_name as

و به همین صورت مثل شکل زیر :


"Select p_name as [نام],p_fname as [نام خانوادگی],p_Address as [آدرس] from table1"

سوالی داشتین بپرسین .

موفق باشید./

lastmory
چهارشنبه 09 فروردین 1391, 12:58 عصر
خوب من فکر میکنم که همین روش جواب بده
اما اشکال شاید از کدت باشه
1.dataset رو به صورت Global تعریف نکن ، برای هر گرید یه دیتا ست جدا ، توی همین Form Load تعریف کن
2.کانکشنتو توی آخرین مرحله ببندش ، یا برای هر بار که میخوای ببندیش ، قبلش Open ش کرده باش

lastmory
چهارشنبه 09 فروردین 1391, 13:01 عصر
راه حا دوستمون خوبه ولی کدنویسی رو زیاد میکنه و امکان اشتباه رو بالا میبره برای اینکار(تغییر عنوان های دیتا گرید)

موفق باشید./
به کد نویسی نیاز نداره که :متعجب:
Designer ه خود گرید ویو این امکان رو میده

parsaid
چهارشنبه 09 فروردین 1391, 13:05 عصر
سلام دوست عزیز امیدوارم ساله خوبی رو داشته باشین و همیشه موفق باشید ،


راه حا دوستمون خوبه ولی کدنویسی رو زیاد میکنه و امکان اشتباه رو بالا میبره برای اینکار(تغییر عنوان های دیتا گرید) میتونین از کد زیر استفاده کنید :

به جای مثلا :

Select p_name from table1

بنویس :

from table [نام] select p_name as

و به همین صورت مثل شکل زیر :


"Select p_name as [نام],p_fname as [نام خانوادگی],p_Address as [آدرس] from table1"

سوالی داشتین بپرسین .

موفق باشید./

................................................

میخوام عنوان ستونها رو با استفاده از قسمت Edit انجام بدم!!!
به غیر از دستوراتی که فرمودین راه دیگه ای نیس؟؟؟؟؟

parsaid
چهارشنبه 09 فروردین 1391, 13:07 عصر
به کد نویسی نیاز نداره که :متعجب:
Designer ه خود گرید ویو این امکان رو میده


میشه لطف کنین یه مثال با استفاده از کدهای بنده بزارین؟؟؟
ممنون

lastmory
چهارشنبه 09 فروردین 1391, 13:13 عصر
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim Ds_Kol As New Dataset
Da = New OleDbDataAdapter("select * from Kol", Cnn)
Da.Fill(Ds_Kol , "Kol")
Me.DataGViewK.DataSource = Ds_Kol
Me.DataGViewK.DataMember = "Kol"


Dim Ds_Moein As New Dataset
Da = New OleDbDataAdapter("select * from Moein", Cnn)
Da.Fill(Ds_Moein, "Moein")
Me.DataGViewM.DataSource = Ds_Moein
Me.DataGViewM.DataMember = "Moein"

Dim Ds_Sanad As New Dataset
Da = New OleDbDataAdapter("select * from Sanad", Cnn)
Da.Fill(Ds_Sanad, "Sanad")
Me.DataGViewS.DataSource = Ds_Sanad
Me.DataGViewS.DataMember = "Sanad"

Cnn.Close()
End Sub

parsaid
چهارشنبه 09 فروردین 1391, 13:25 عصر
نتونستم جواب بگیرم :ناراحت:
پروژه ام رو ضمیمه میکنم

ircast
چهارشنبه 09 فروردین 1391, 14:00 عصر
با سلام
ببین مشکلی نداره
موفق باشید

Hybrid
چهارشنبه 09 فروردین 1391, 14:07 عصر
نتونستم جواب بگیرم :ناراحت:
پروژه ام رو ضمیمه میکنم

بیا داداش : ) . اینم عیدیت

parsaid
چهارشنبه 09 فروردین 1391, 14:19 عصر
با لطف جناب vbBoss (http://barnamenevis.org/member.php?230007-vbBoss) و ircast (http://barnamenevis.org/member.php?183816-ircast) مشکل حل شد. ممنوووون