PDA

View Full Version : سوال: بروز مشکل در Microsoft. ... .Access.Dao.DBEngine و گرفتن Query از چند Table و پر کردن OleDbAdapter



gilsoft
شنبه 29 مهر 1391, 23:51 عصر
سلام دوستان عزیز

ابتدا کد زیر را ملاحظه بفرمایید :

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


اگه به کد سطر 13 دقت بفرمایید .. می بینیم که از یک 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)"

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

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

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

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

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