PDA

View Full Version : مبتدی: سوال درباره نمایش ستون های فارسی acces در DataGrideView



graphic
دوشنبه 05 مهر 1389, 23:00 عصر
سلام به همه...
من برای نمایش ستون های فارسی جداول acces در datagridview
هم از روش caption استفاده کردم
هم از روش
Dim dg As DataGridView
dg.Columns(0).HeaderText = "رديف"
ولی جواب نمیگیرم...
با تشکر.

hooooman
دوشنبه 05 مهر 1389, 23:46 عصر
سلام
اگه شما grid رو از نوار ابزار رو فرم گذاشتين همون خط دوم کافيه

Dgv1.Columns(0).HeaderText = "11111"
و در غير اينصورت
dim dg as new datagridview

graphic
سه شنبه 06 مهر 1389, 00:23 صبح
با تشکر از hooooman عزیز
ولی جواب نمیده!:متفکر:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ocn As New System.Data.OleDb.OleDbConnection
Dim ocm As New System.Data.OleDb.OleDbCommand
Dim oda As New System.Data.OleDb.OleDbDataAdapter
Dim dt As New DataTable
Dim dgv1 As New DataGridView

ocn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\db.mdb"

ocm.Connection = ocn
ocm.CommandText = "SELECT * FROM test"

oda.SelectCommand = ocm
oda.Fill(dt)
DataGridView1.DataSource = dt
dgv1.Columns(1).HeaderText = "ردیف"
dt.Dispose()
oda.Dispose()
ocm.Dispose()
ocn.Dispose()
End Sub

مشکل کجاست؟

Ghaisard
سه شنبه 06 مهر 1389, 12:47 عصر
دوست عزيز با كدي كه نوشتي چه كار مي خواهي بكني؟

اگه از قبل DataGridView به فرم اضافه كردي ديگه لازم نيست كه Dim dgv1 As New DataGridView رو بنويسي

graphic
سه شنبه 06 مهر 1389, 13:13 عصر
دوست عزيز با كدي كه نوشتي چه كار مي خواهي بكني؟

اگه از قبل DataGridView به فرم اضافه كردي ديگه لازم نيست كه Dim dgv1 As New DataGridView رو بنويسي

می خوام جدول با نام ستون های En در اکسس رو توی datagridviewبرنامه با نام ستون های Fa نمایش بدم
dgv1 رو تعریف میکنم...نمیکنم...خطا میگیره.:متفکر::عصبانی++::افسر ده::عصبانی++::اشتباه:

Ghaisard
سه شنبه 06 مهر 1389, 13:35 عصر
يه DataGridView به فرم اضافه كن

كدتو اينطوري بنويس:



PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ocn AsNew System.Data.OleDb.OleDbConnection
Dim ocm AsNew System.Data.OleDb.OleDbCommand
Dim oda AsNew System.Data.OleDb.OleDbDataAdapter
Dim dt AsNew DataTable
ocn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\db.mdb"
ocm.Connection = ocn
ocm.CommandText = "SELECT * FROM test"
oda.SelectCommand = ocm
oda.Fill(dt)
DataGridView1.DataSource = dt
DataGridView1.Columns(1).HeaderText = "رديف"
dt.Dispose()
oda.Dispose()
ocm.Dispose()
ocn.Dispose()
EndSub

graphic
سه شنبه 06 مهر 1389, 13:49 عصر
Ghaisard عزیز...
یک دنیا تشکر.:تشویق::لبخند:

gilsoft
پنج شنبه 22 دی 1390, 04:52 صبح
يه DataGridView به فرم اضافه كن

كدتو اينطوري بنويس:



PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ocn AsNew System.Data.OleDb.OleDbConnection
Dim ocm AsNew System.Data.OleDb.OleDbCommand
Dim oda AsNew System.Data.OleDb.OleDbDataAdapter
Dim dt AsNew DataTable
ocn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\db.mdb"
ocm.Connection = ocn
ocm.CommandText = "SELECT * FROM test"
oda.SelectCommand = ocm
oda.Fill(dt)
DataGridView1.DataSource = dt
DataGridView1.Columns(1).HeaderText = "رديف"
dt.Dispose()
oda.Dispose()
ocm.Dispose()
ocn.Dispose()
EndSub

سلام
آیا میشه در سطر 12 بجای "ردیف" از فیلد Caption موجود در بانک Access استفاده کرد ؟
این سوال رو به این خاطر میپرسم که در برنامه ی من تعداد بانکها Tables خیلی زیاده و طبیعتا برای داشتن یک Header بانام فارسی باید کلی کد نوشت !!! :متفکر:
دوستان عزیزم اگه بتونید یه راهنمایی کوچیک بکنید .. ممنون میشم ؟؟

sh2007
پنج شنبه 22 دی 1390, 09:38 صبح
سلام
آیا میشه در سطر 12 بجای "ردیف" از فیلد Caption موجود در بانک Access استفاده کرد ؟
این سوال رو به این خاطر میپرسم که در برنامه ی من تعداد بانکها Tables خیلی زیاده و طبیعتا برای داشتن یک Header بانام فارسی باید کلی کد نوشت !!! :متفکر:
دوستان عزیزم اگه بتونید یه راهنمایی کوچیک بکنید .. ممنون میشم ؟؟
راه دیگه اینه که تعداد فیلدها رو توی حلقه for بذاری و اونو از توی دیتابیس یکی یکی بخونی و همون طور به دیتاگرید اضافه کنی

davood-ahmadi
پنج شنبه 22 دی 1390, 15:45 عصر
با این دستور نمی تونی .

اگر بخواهی این روش را استفاده کنی باید از دستوارت DAO استفاده کنی

نمونه زیر :

اول رفرنس DAO را به برنامه اضافه کن و سپس در داخل فرم خود ایمپورت کن

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dbs As DAO.Database
Dim dbe As New DAO.DBEngine
dbs = dbe(0).OpenDatabase(Application.StartupPath + "\db.mdb")
Dim tbl As String = "Test"

Dim ocn As New System.Data.OleDb.OleDbConnection
Dim ocm As New System.Data.OleDb.OleDbCommand
Dim oda As New System.Data.OleDb.OleDbDataAdapter
Dim dt As New DataTable

ocn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\db.mdb"
ocm.Connection = ocn
ocm.CommandText = "SELECT * FROM " & tbl
oda.SelectCommand = ocm
oda.Fill(dt)
DataGridView1.DataSource = dt
For Each clm In DataGridView1.Columns
For i As Byte = 0 To 40
Try
If dbs.TableDefs(tbl).Fields(clm).Properties(i).Name = "Caption" Then DataGridView1.Columns(clm).HeaderText = dbs.TableDefs(tbl).Fields(clm).Properties(i).Value
Catch ex As Exception

End Try
Next
Next

dt.Dispose()
oda.Dispose()
ocm.Dispose()
ocn.Dispose()

End Sub

gilsoft
یک شنبه 25 دی 1390, 04:38 صبح
اول رفرنس DAO را به برنامه اضافه کن و سپس در داخل فرم خود ایمپورت کن
سلام
1 = من اصلا رفرنس DAO تو سیستم ندارم ! میشه بفرماییئ چگونه باید Add کرد ؟؟ :متفکر:
2 - کدها رو تو کدوم Event بذاریم بهتره ؟؟ :متفکر:

sh2007
یک شنبه 25 دی 1390, 07:07 صبح
سلام
1 = من اصلا رفرنس DAO تو سیستم ندارم ! میشه بفرماییئ چگونه باید Add کرد ؟؟ :متفکر:
2 - کدها رو تو کدوم Event بذاریم بهتره ؟؟ :متفکر:

http://support.microsoft.com/kb/239114

gilsoft
یک شنبه 25 دی 1390, 10:08 صبح
سلام دوست عزیز ..
ممنونم ... ولی مشکل من حل نشد !

davood-ahmadi
یک شنبه 25 دی 1390, 11:00 صبح
الان کجای برنامه مشکل داره یا بهتر بگم کجای مشکل حل نشد؟!

در رابطه با Event هم شما می تونید در Form Load بگذارید و یا همان button1 کافی است. بسته به برنامه شما باید Event انتخاب شود.

gilsoft
یک شنبه 25 دی 1390, 12:19 عصر
الان کجای برنامه مشکل داره یا بهتر بگم کجای مشکل حل نشد؟!
من اصلا هرچی میگردم چیزی بنام DAO تو سیستم من نیست (البته میدونم DAO چیه ها ... ولی تاحالا ازش استفاده نکردم !! قدیما تو VB6 باهاش کارکردم) در واقع نمیدونم چرا گیج شدم ... من اصلا نمی دونم DAO چه جوری باید Add کنم ...
از لینک پست 12# که دوستمون زحمت کشید ... چیزی سر در نیاوردم و مجبور به تعویض ویندوز شدم چون ورژن Msjet40.dll من 4.0.9514.0 بود و در حالیکه اصلا در اون لینک همچین چیزی وجود نداشت !!!!!

davood-ahmadi
سه شنبه 27 دی 1390, 08:31 صبح
اینم از dll ADO
می تونی توی refrence های خود Add کنی

gilsoft
دوشنبه 24 مهر 1391, 16:12 عصر
با این دستور نمی تونی .

اگر بخواهی این روش را استفاده کنی باید از دستوارت DAO استفاده کنی

نمونه زیر :

اول رفرنس DAO را به برنامه اضافه کن و سپس در داخل فرم خود ایمپورت کن

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dbs As DAO.Database
Dim dbe As New DAO.DBEngine
dbs = dbe(0).OpenDatabase(Application.StartupPath + "\db.mdb")
Dim tbl As String = "Test"

Dim ocn As New System.Data.OleDb.OleDbConnection
Dim ocm As New System.Data.OleDb.OleDbCommand
Dim oda As New System.Data.OleDb.OleDbDataAdapter
Dim dt As New DataTable

ocn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\db.mdb"
ocm.Connection = ocn
ocm.CommandText = "SELECT * FROM " & tbl
oda.SelectCommand = ocm
oda.Fill(dt)
DataGridView1.DataSource = dt
For Each clm In DataGridView1.Columns
For i As Byte = 0 To 40
Try
If dbs.TableDefs(tbl).Fields(clm).Properties(i).Name = "Caption" Then DataGridView1.Columns(clm).HeaderText = dbs.TableDefs(tbl).Fields(clm).Properties(i).Value
Catch ex As Exception

End Try
Next
Next

dt.Dispose()
oda.Dispose()
ocm.Dispose()
ocn.Dispose()
End Sub


سلام
اگه به کد سطر 14 دقت بفرمایید .. می بینیم که از یک Table داریم Query می گیریم
حالا اگه بجای کد فوق از کد زیر بخواهیم استفاده کنیم :

ocm.CommandText = "SELECT TelBook.*, Groups.GroupNo, Pictures.PicPicture FROM ((Groups RIGHT OUTER JOIN TelBook ON Groups.GroupName = TelBook.TelGroup) LEFT OUTER JOIN Pictures ON TelBook.TelFullName = Pictures.PicFullName)"

کد سطر 21 درست عمل نمی کنه ! :متفکر:
چه کدی بنویسیم که از هر سه Table های Telbook, Groups, Pictures بتونیم Caption یا همون HeaderText رو استخراج کنیم ؟ :متفکر:

ممنون میشم راهنمایی کنید .... :لبخندساده:

gilsoft
جمعه 28 مهر 1391, 12:46 عصر
سلام دوستان عزيزم

كسي نميتونه اين مشكل من رو حل كنه ؟

من دارم يه كلاس (شايدم تبديل كردمش به يه كامپوننت) مينويسم كه بصورت هوشمند بانك رو تشخيص ميده و در نهايت HeaderText ديتاگريد رو از Caption جدول Access و يا Descript جدول SQL ميخونه و اونو فارسي ميكنه ..

فقط در قسمت Access كه با DAO.DBEngine كار ميكنه و با OleDbAdapter پرميشه ... مشكل دارم

خواهشا اگه ممكنه من رو راهنمايي كنيد

قول ميدم كه در صورت تكميل شدن اين كلاس يا كامپوننت .. اونو با سورس تو همين تالار تقديم شما كنم ...

gilsoft
پنج شنبه 02 آذر 1391, 04:55 صبح
دوستان کسی نمیتونه این مشکل منو حل کنه ؟! :عصبانی++: :ناراحت: :افسرده: :گریه: :خجالت: