PDA

نسخه کامل مشاهده نسخه کامل : ارتباط با بانك اطلاعاتي



amie hossein
22-07-2008, 18:37
سلام دوستان.
ميشه يكي به طور كامل ارتباط با بانك اطلاعاتي در vb رو برام بگه. با استفاده از دستورات SQL مثل select
در ضمن گشتم ولي پيدا نكردم.

mehdidelphi
22-07-2008, 18:55
با سلام
دوست عزیز از دستور select برای گرفتن اطلاعات از جداول بانک اطلاعاتی استفاده میشه نه برای ارتباط با بانک اطلاعاتی.برای ایجاد ارتباط با بانک اطلاعاتی Access از روش زیر می تونی استفاده کنی
1- ابتدا یک adodc به فرمت اضافه کن (برای اینکار اول باید مسیر project/components رو بری و بعد گزینه microsoft adodata controlرو تیک بزنی تا به جعبه ابزارت اضافه بشه بعد به فرمت اضافه کنی)
2- در پنجره properties گزینه خای زیر رو ست می کنی:
connectionstring=Provider=Microsoft.Jet.OLEDB.4.0; Data Source=address bank;Persist Security Info=False
commandtype=2
حالا می تونی با ست کردن datasource یک دیتاگرید اطلاعاتتو توی اون ببینی.
امیدوارم کمکت کرده باشم.

amie hossein
22-07-2008, 20:21
با سلام
دوست عزیز از دستور select برای گرفتن اطلاعات از جداول بانک اطلاعاتی استفاده میشه نه برای ارتباط با بانک اطلاعاتی.برای ایجاد ارتباط با بانک اطلاعاتی Access از روش زیر می تونی استفاده کنی
1- ابتدا یک adodc به فرمت اضافه کن (برای اینکار اول باید مسیر project/components رو بری و بعد گزینه microsoft adodata controlرو تیک بزنی تا به جعبه ابزارت اضافه بشه بعد به فرمت اضافه کنی)
2- در پنجره properties گزینه خای زیر رو ست می کنی:
connectionstring=Provider=Microsoft.Jet.OLEDB.4.0; Data Source=address bank;Persist Security Info=False
commandtype=2
حالا می تونی با ست کردن datasource یک دیتاگرید اطلاعاتتو توی اون ببینی.
امیدوارم کمکت کرده باشم.

سلام دوست عزيز
ممنون از راهنمايي
اين درست ولي من منظورم از select اين هست كه بتونم با اين دستور توي بانك اطلاعاتي search كنم و اطلاعات به دست آمده را تك تك توي يه چيزي مثل textbox بذارم.يعني مي خواهم يه sql query درست كنم.
اميدوارم كه تونسته باشم منظورم رو رسونده باشم.

amie hossein
25-07-2008, 18:36
سلام
اي بابا يكي جواب ما رو بده!!!

majj
28-07-2008, 09:29
شما بگو مشکلت تو سرچ بوسیله sql کامند هست یا نشون دادن نتایج جستجو تو تکست باکس؟
ولی این رو بگم که در بانکهای اطلاعاتی رابطهای و غیر رابطهای به خاطر وجود رکوردهای تکراری در بانک و عدم توانایی نمایش همه انها درموقع جستجودر یک تکست باکس به شکل کامل و شکیل ، از گریدها استفاده میشه

amie hossein
28-07-2008, 19:08
شما بگو مشکلت تو سرچ بوسیله sql کامند هست یا نشون دادن نتایج جستجو تو تکست باکس؟
ولی این رو بگم که در بانکهای اطلاعاتی رابطهای و غیر رابطهای به خاطر وجود رکوردهای تکراری در بانک و عدم توانایی نمایش همه انها درموقع جستجودر یک تکست باکس به شکل کامل و شکیل ، از گریدها استفاده میشه

سلام دوست عزيز
تقريبا مشكلم تو هر 2 تاشون هست
ولي بيشتر تو سرچ بوسيله دستورات sql است. اصلا دستورات وصل شدن به بانك اطلاعاتي و سرچ تو اونو نميدونم.تا اينجاشو فكر كنم درست باشه . نه؟؟؟
Dim cn As ADODB.Connection

Set cn = New ADODB.Connection

Dim rs As ADODB.Recordset


connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\abolfazl\My Documents\test-vb\project1\db1.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"

cn.Open (connstring)

Set rs = New ADODB.Recordset
اما بعدش چي؟

majj
29-07-2008, 07:38
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

mehdidelphi
29-07-2008, 07:58
با سلام
دوست عزیز امیدوارم که مشکلتون حل شده باشه
کدی که دوستمون majj نوشتن در صورتی درسته که فیلد شما از نوع تکست باشه اما در مورد نوع عددی از کد زیر استفاده کنسد
Adodc4.RecordSource = "select * from mytable where tel='" & txt_search2
Set form0.DataGrid1.DataSource = Adodc4

amie hossein
31-07-2008, 15:40
سلام
آقا مشكل ما هنوز حل نشده!
خواهشا اگه ميشه يكي از اول روش جستجو در ديتابيس رو با استفاده از دستورات sqlquery و ..... به ما ياد بده ممنون ميشم.

mehdidelphi
31-07-2008, 17:32
با سلام
برای search کردن متن string از کد زیر استفاده کنید
"select * from tblcustomer where name='" & text1.text & "'"
برای search عدد از کد زیر استفاده کنید.
"select * from tblcustomer where name=" & text1.text

Unknowlive
01-08-2008, 14:32
برای جستجو می تونی ابتدا بانک را به کنترل ADO یا Dataمتصل کنی بعد اون رکوردی که می خواهی جستجو کنی را به یک Textbox متصل کند و Visible ان راFalse کن بعد Textbox را در یک متغیر قرار بده و بعد
Dim a As String
Data1.Recordset.MoveFirst
Do While Not (Data1.Recordset.EOF)
If Text6.Text = Text5.Text Then
a=msgbox"Found"
Exit Do
Else
Data1.Recordset.MoveNext
End If
Loop
End Sub

Unknowlive
01-08-2008, 14:42
یادم رفت بگم در شرط Text6 اونجایه که کلمه جستجو وارد می شود و Text5 همان کنترل مقید متصل به بانکه

amie hossein
01-08-2008, 16:36
برای جستجو می تونی ابتدا بانک را به کنترل ADO یا Dataمتصل کنی بعد اون رکوردی که می خواهی جستجو کنی را به یک Textbox متصل کند و Visible ان راFalse کن بعد Textbox را در یک متغیر قرار بده و بعد
Dim a As String
Data1.Recordset.MoveFirst
Do While Not (Data1.Recordset.EOF)
If Text6.Text = Text5.Text Then
a=msgbox"Found"
Exit Do
Else
Data1.Recordset.MoveNext
End If
Loop
End Sub

سلام
با تشكر از راهنمايي همه دوستان .
فكر كنم با اين يكي يه جورايي متوجه شدم.
Unknowlive اگه روش ديكه اي هست بازم بگو ممنون ميشم.

amie hossein
01-08-2008, 16:43
برای جستجو می تونی ابتدا بانک را به کنترل ADO یا Dataمتصل کنی بعد اون رکوردی که می خواهی جستجو کنی را به یک Textbox متصل کند و Visible ان راFalse کن بعد Textbox را در یک متغیر قرار بده و بعد
Dim a As String
Data1.Recordset.MoveFirst
Do While Not (Data1.Recordset.EOF)
If Text6.Text = Text5.Text Then
a=msgbox"Found"
Exit Do
Else
Data1.Recordset.MoveNext
End If
Loop
End Sub

سلام
با تشكر از راهنمايي همه دوستان .
فكر كنم با اين يكي يه جورايي متوجه شدم.
Unknowlive اگه روش ديكه اي هست بازم بگو ممنون ميشم.

Unknowlive
01-08-2008, 21:04
روش اول را کمی تفسیر میکنم تا خوب برات مفهوم بشه این روش را می توان تغیرات بسیاری داد که با فهمیدن آن این کار را می توانید بکنید:
خط1:متغیری از نوع رشته تعریف کردیم
2:با این دستور اشاره گر را به اولین رکورد می بریم تا جستجو از اول شروع شود
3:data1.recordset.eof به معنای اخرین رکورد فایل است که با کلمه Not پشت ان در حلقه تکرار یعنی:تا وقتی که به اخر رکورد نرسیده حلقه در جریان باشد
4:با دستور if شرطی گذاشتیم به معنای اینکه اگر کلمه مورد جستجو(text5.text)برابر با رکورد موردنظر(Text6.text)که در ابتدا حلقه رکورد اول می باشد بود اجازه رفتن به خط 5 را می دهد
5:پیغامی مبتنی بر پیدا شدن را ارائه می دهد
6:چون جستجو انجام شده با این دستور از حلقه خارج می شویم
7:در این خط گفته شده است اگر خط 4 برقرار نبود دستور خط 8 را انجام بده
8:به رکورد بعد از رکورد جاری که شرط جستجو در ان انجام شد می رود یعنی در ابتدا رکورد 1 می باشد اگر در خط 4 شرط برقرار نبود اینجا به رکورد شماره 2 می رود تا...
9:شرط تمام می شود
10:کلمه کلیدی که همراه با Do می باشد

amie hossein
02-08-2008, 13:03
روش اول را کمی تفسیر میکنم تا خوب برات مفهوم بشه این روش را می توان تغیرات بسیاری داد که با فهمیدن آن این کار را می توانید بکنید:
خط1:متغیری از نوع رشته تعریف کردیم
2:با این دستور اشاره گر را به اولین رکورد می بریم تا جستجو از اول شروع شود
3:data1.recordset.eof به معنای اخرین رکورد فایل است که با کلمه Not پشت ان در حلقه تکرار یعنی:تا وقتی که به اخر رکورد نرسیده حلقه در جریان باشد
4:با دستور if شرطی گذاشتیم به معنای اینکه اگر کلمه مورد جستجو(text5.text)برابر با رکورد موردنظر(Text6.text)که در ابتدا حلقه رکورد اول می باشد بود اجازه رفتن به خط 5 را می دهد
5:پیغامی مبتنی بر پیدا شدن را ارائه می دهد
6:چون جستجو انجام شده با این دستور از حلقه خارج می شویم
7:در این خط گفته شده است اگر خط 4 برقرار نبود دستور خط 8 را انجام بده
8:به رکورد بعد از رکورد جاری که شرط جستجو در ان انجام شد می رود یعنی در ابتدا رکورد 1 می باشد اگر در خط 4 شرط برقرار نبود اینجا به رکورد شماره 2 می رود تا...
9:شرط تمام می شود
10:کلمه کلیدی که همراه با Do می باشد
سلام دوست عزيز.
اون كد بالايي تونو فهميدم ولي من مي خوام با استفاده از دستور select و query گرفتن اين جستجو رو انجام بدم يه چيزايي تو مايه هاي اين:
Dim cn As ADODB.Connection

Set cn = New ADODB.Connection

Dim rs As ADODB.Recordset


connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\abolfazl\My Documents\test-vb\project1\db1.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"

cn.Open (connstring)

Set rs = New ADODB.Recordset
اما بعدش رو نميدونم .
و مطمينم كه ميشه آخه يه جايي ديده بودم.