PDA

View Full Version : کانکت شدن به اکسس با وی بی 2005



na3er-faraji
چهارشنبه 23 فروردین 1385, 10:08 صبح
با سلام . اولا بابت پاک سوال قبلی ممنون . اما مشکلی نیست به قول آقا حامد برای گرفتن جواب باید پر رو بود . ما هم که چیزی که زیاد داریم رو
آقا سوالمو اینطوری می پرسم . من به تازگی دارم با ویژال بیسیک 2005 کار می کنم و قبلا با ویژال 6 کار می کردم . اما مثل اینکه کانکت شدن به دیتا بیس اینجا کلی تغییر کرده و من هم هیچ آموزشی در دسترس ندارم . اما کارهایی که تا الان کردم فقط بگید درسته یا نه (بانک من اکسسه)؟
1) اول از منوی data و گزینه add new data source به بانک کانکت میشم
2) اما از این به بعد نمیدونم باید چیکار کنم ( مثلا اون data set) واسه چیه ؟
3) تو ویژال 6 حتی بدون یه خط کدنویسی ارتباط بانک با فیلد ها انجام می شد مثلا تو ویژال بیسیک 6 textbox ها خاصیتی به اسم data source و data member داشت که فیلد ها رو به بانک ارتباط می دادیم . اینا رو الان از کجا باید پیدا کنیم؟
لطفا مثال واسم نزارید بعدشم من با 2003 کار نمی کنم با 2005 ( خواهش می کنم یه نفر توضیح بده مطمینم به درد خیلی ها می خوره)

niloufar
چهارشنبه 23 فروردین 1385, 17:13 عصر
سلام
احتمالا دلیل پاک شدن قبلی هم این بوده که:
یه کلاس بنده و یه کلاس آقای زواری برای استفاده از ADO.Net2 گذاشته بودیم.
کلاس بنده بدون استفاده از روش های ویزاردی بود و کلاس آقای زواری با استفاده از این روشها.
بگردید پیداشون میکنید...

na3er-faraji
پنج شنبه 24 فروردین 1385, 08:41 صبح
جواب سوالات منو کسی نمیده ؟

Mehrafrooz
پنج شنبه 24 فروردین 1385, 09:02 صبح
اون کلاسی که خانم نیلوفر نوشته :
http://www.barnamenevis.org/forum/showthread.php?t=38062

na3er-faraji
جمعه 25 فروردین 1385, 06:11 صبح
من کلاس نمیخوام به خدا. سوالات من یه چیز دیگه ست . لطفا بخونید و جواب منو بدید؟

Mehrafrooz
جمعه 25 فروردین 1385, 07:35 صبح
شما می خوای از طریق ویزارد این کارو بکنید ؟
بعد از اینکه از طریق add new data source بانکت رو اضافه کردی ، تو همون منوی دیتا گزینه ای هست به نام view data source که با انتخاب این یه پانلی مثل پانل toolbox کنار اون اضافه میشه که بانکت رو نشون میده و اگر روی علامتهای + کلیک کنی ، می تونی فیلدهای بانکت رو هم ببینی .
برای اضافه کردن اون فیلد به فرم کافیه که بغل اون فیلد کلیک کنی میبینی که یه کامبو باکس مانندی باز میشه که میتونی نوع فیلد رو انتخاب کنی مثلا : کامبو باکس یا تکست باکس و ...
بعد از این کار کافیه که اون رو به روی فرم درگ کنی .
data source و data member هم داخل properties مربوط به کنترل مربوطه هست .
البته این روش ویزادیه .

na3er-faraji
جمعه 25 فروردین 1385, 08:23 صبح
دوست عزیز ممنون از جوابت . ام در مورد data source و data member که گفتی آیا مطمینی که داخل خاصیت ها هست مثلا من هر چی داخل textbox ها دنبال می گردم همچین خاصیتی پیدا نمی کنم و یه چیز دیگه اینکه اصلا کار این data set چیه؟ اگه اشتباه نکنک کارش اینه که میتونی چند تا بانک و جدول با همه رابطه هاشو توش ذخیره کنی ؟ اگه درسته اصلا این کار به چه درد ما میخوره و چرا عین همون قبلا تو وی بی 6 این کار رو نمی کنیم بدون data set؟ ببخشید که خیلی خنگم

Mehrafrooz
جمعه 25 فروردین 1385, 08:55 صبح
اجازه بدید تصحیح کنم
data source و data member به شکل دیگه ای هست
در همون properties گزینه هست به نام databinding که شامل دو سه تا گزنه هست که یکیش text که همون کار data source و data member رو انجام میده و اگه روش کلیک کنی لیستی از جداولت رو نشون میده که می تونی انتخاب کنی که کدام فیلد رو می خوای به تکست باکس بایند کنی .
دیتا ست هم میشه گفت مثل یه مخزن می مونه که کل اطلاعات بانکها و جداولت رو تو خودش نگه میداره .

Mehrafrooz
جمعه 25 فروردین 1385, 09:07 صبح
data source رو می تونی مثلا برای کومبوباکس ببینی . همینطور dispalymember که من با data member اشتباه گرفتم . ببخشید .

na3er-faraji
شنبه 26 فروردین 1385, 06:11 صبح
دیتا ست هم میشه گفت مثل یه مخزن می مونه که کل اطلاعات بانکها و جداولت رو تو خودش نگه میداره .

کسی میدونه به چه دردی میخوره . چون هر چی فکر می کنم جز کند کردن سرعت اجرای برنامه...؟

روح اله معینی زاده
شنبه 26 فروردین 1385, 06:59 صبح
سلام دوست گرامی
این که گفتی DataSet به چه دردی می‌خوره بر می‌گرده به این که چقدر با بانک اطلاعاتی و سرور و ... کار کرده باشی.
اون وقت می‌فهمی که چه قدر این DataSet موهومه و از این به بعد ازش استفاده می‌کنی.

1- در روش سابق که از اتصال مستقیم و همیشگی به بانک استفاده می‌کردی اگه تک کاربره بخوای کار کنی، خوب خیلی خوبه ولی وقتی تعداد کاربران زیاد بشه چی، آیا بار اضافی روی سرور نمی ذاره؟
2- شما می‌تونی درون DataSet همه اطلاعات مورد نیازت رو توی جداول جداگانه‌ای که تعریف می‌کنی بریزی و بعد ارتباط با بانک رو قطع کنی و از این اطلاعات استفاده کنی و نهایتاً آن را به روز رسانی کنی که آن هم با یه باز کردن مجدد بانک و به روز رسانی به انجام می‌رسه. بنابراین ارتباط با سرور به حداقل می‌رسه و بار شد آمدی (ترافیکی) کار نیز؛ پس سرعت کار افزایش پیدا خواهد کرد.
3- روال کار رو هم که دوستان گفته‌اند. روش دستی آن هم ایجاد یه کانکشن برای ارتباط با بانک، ایجاد یه آداپتور برای دریافت اطلاعات (دستورات sql)، به روز رسانی و یا حذف از بانک که خاصیت کانکشن آن به متغیر کانکشنی که در مرحله قبل باز کردی ارتباط داره و ایجاد یه دیتاست برای نگه‌داشتن محلی اطلاعات است.

امیدوارم متوجه شده باشید.
با احترام- خدانگهدار

na3er-faraji
شنبه 26 فروردین 1385, 09:26 صبح
دوست عزیز مرسی از توضیح کاملت . اما یه سوالی که واسم پیش اومد اینه که بعضی مواقع استفاده از data set مقرون به صرفه نیست؟ اما آیا میشه بدون استفاده از اون مستقیم به بانک کانکت شد یا استفاده از اون اجباریه؟

vbapr2005
شنبه 26 فروردین 1385, 09:49 صبح
البته با اجازه ی آقای معینی زاده

بله. طبیعیه که اگه دیتابیس حاوی اطلاعات بسیار زیادی باشه وقت تقریبا زیادی برای پرکردن دیتاست نیاز هست. در این صورت شما میتونید از DataReadder استفاده کنید.

na3er-faraji
شنبه 26 فروردین 1385, 09:59 صبح
Dim objReader As OleDbDataReader
objReader = objCommand.ExecuteReader
منظورتون اینه؟

vbapr2005
شنبه 26 فروردین 1385, 10:04 صبح
من تا حالا با دیتاریدر کار نکردم و فقط برای این که جواب اون سوالتو بگیری اونو گفتم
اما فکر کنم یه چیزی تو همون مایه هاس!

روح اله معینی زاده
شنبه 26 فروردین 1385, 13:02 عصر
سلام بر همه دوستان

خواهش می‌کنم، این جا ملک خصوصی بنده نیست که اجازه می‌گیرید :خجالت:

بسیار خوب هم گفته‌اید، راه آن همان DataReader است.

با احترام- خدانگهدار

niloufar
شنبه 26 فروردین 1385, 19:24 عصر
دوستان سلام
مسلما فرمایشات شما تو مواقعی خوبه. اما گاهی پر کردن یه دیتا ست کامل از جداول اصلا کار معقولی نیست. قرار نیست کل بانک رو شما از سرور بیارید پایین و بگید که از این به بعدش کار سریع تر میشه! میدونید چقدر ترافیک ایجاد میشه (تو شبکه) اگه شانسی ساعت 8 صبح که همه یوزر ها میخوان برنامه هاشونو ران کنن، بخوان همشون همه جداول رو بیارن پایین؟!!
به نظر صحیح است اینطوری بگیم که همه چی به شرایط بستگی داره. باید دید کی چی کار باید کرد.

na3er-faraji
یک شنبه 27 فروردین 1385, 07:15 صبح
مرسی از راهنمایی هاتون . واقعا نمیدونید چه کمک بزرگی به من کردید
اما چند تا سوال دیگه
1) این دو تا تعریف رو ببینیدوبگید چرا تو دومی از دستور New استفاده نشده است

Dim objCon as new oledbconnection
Dim objReader as oledbdatareader

حتی زمانی که از New استفاده می کنیم خطا می گیره.

2) من زمانی که اطلاعات رو تو دیتا ست لود می کنم باید همه کارها رو تو همون دیتا ست انجام بدم و آخر که می خوام برنامه رو ببندم اطلاعات رو تو بانک ذخیره کنم . درسته؟ اگه درسته آخر با چه دستوری باید این کار رو انجام بدم؟
3) من به بانک کانکت شدم و یه دیتا ست هم ساختم و یه فیلد Text رو هم به بانک ارتباط دادم . (با کد نویسی) اما حالا میخوام یه دکمه بزارم که با زدن رو اون به فیلد بعدی برم تو وی بی 6 این کار با رکوردست انجام می شد . این جا چجوریه؟

na3er-faraji
دوشنبه 28 فروردین 1385, 08:03 صبح
کسی نبود؟ فکر نکنم سوالم اینقدر سخت باشه؟

mohandese_hiclass
دوشنبه 28 فروردین 1385, 08:52 صبح
مرسی از راهنمایی هاتون . واقعا نمیدونید چه کمک بزرگی به من کردید
اما چند تا سوال دیگه
1) این دو تا تعریف رو ببینیدوبگید چرا تو دومی از دستور New استفاده نشده است

Dim objCon as new oledbconnection
Dim objReader as oledbdatareader

حتی زمانی که از New استفاده می کنیم خطا می گیره.

2) من زمانی که اطلاعات رو تو دیتا ست لود می کنم باید همه کارها رو تو همون دیتا ست انجام بدم و آخر که می خوام برنامه رو ببندم اطلاعات رو تو بانک ذخیره کنم . درسته؟ اگه درسته آخر با چه دستوری باید این کار رو انجام بدم؟
3) من به بانک کانکت شدم و یه دیتا ست هم ساختم و یه فیلد Text رو هم به بانک ارتباط دادم . (با کد نویسی) اما حالا میخوام یه دکمه بزارم که با زدن رو اون به فیلد بعدی برم تو وی بی 6 این کار با رکوردست انجام می شد . این جا چجوریه؟

این دو سوالی که شما کردید یا حتی سوالاته قبلیتون اینو نشون می ده که شما اصلا کتاب .نت نخوندید چون سوالاتون پایه ای هستند و اگه یاد نگیرید base برنامه نویسی تون ضعیف میشه

mohandese_hiclass
دوشنبه 28 فروردین 1385, 08:54 صبح
سلام دوست گرامی
این که گفتی DataSet به چه دردی می‌خوره بر می‌گرده به این که چقدر با بانک اطلاعاتی و سرور و ... کار کرده باشی.
اون وقت می‌فهمی که چه قدر این DataSet موهومه و از این به بعد ازش استفاده می‌کنی.

1- در روش سابق که از اتصال مستقیم و همیشگی به بانک استفاده می‌کردی اگه تک کاربره بخوای کار کنی، خوب خیلی خوبه ولی وقتی تعداد کاربران زیاد بشه چی، آیا بار اضافی روی سرور نمی ذاره؟
2- شما می‌تونی درون DataSet همه اطلاعات مورد نیازت رو توی جداول جداگانه‌ای که تعریف می‌کنی بریزی و بعد ارتباط با بانک رو قطع کنی و از این اطلاعات استفاده کنی و نهایتاً آن را به روز رسانی کنی که آن هم با یه باز کردن مجدد بانک و به روز رسانی به انجام می‌رسه. بنابراین ارتباط با سرور به حداقل می‌رسه و بار شد آمدی (ترافیکی) کار نیز؛ پس سرعت کار افزایش پیدا خواهد کرد.
3- روال کار رو هم که دوستان گفته‌اند. روش دستی آن هم ایجاد یه کانکشن برای ارتباط با بانک، ایجاد یه آداپتور برای دریافت اطلاعات (دستورات sql)، به روز رسانی و یا حذف از بانک که خاصیت کانکشن آن به متغیر کانکشنی که در مرحله قبل باز کردی ارتباط داره و ایجاد یه دیتاست برای نگه‌داشتن محلی اطلاعات است.

امیدوارم متوجه شده باشید.
با احترام- خدانگهدار

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

na3er-faraji
سه شنبه 29 فروردین 1385, 06:51 صبح
خواهش می کنم یه نفر جواب سوالات منو بده . حداقل اون سوال حرکت بین رکوردها با یک دکمه؟ آخه من کتاب الان از کجا گیر بیارم . اصلا واسه 2005 کتاب فارسی هست؟

Mehrafrooz
سه شنبه 29 فروردین 1385, 07:47 صبح
خواهش می کنم یه نفر جواب سوالات منو بده . حداقل اون سوال حرکت بین رکوردها با یک دکمه؟
مگه شما ویزاردی کار نمی کنی ؟
خوب خود ویزارد وقتی که اولین فیلد رو به روی فرم می ندازید یک نوار ابزار می سازه که داخل اون نوار ابزار ، دکمه های حرکت بین رکوردها ( بعدی ، قبلی ، اولی و آخری) رو خودش می سازه .

na3er-faraji
چهارشنبه 30 فروردین 1385, 06:39 صبح
نه دوست عزیز . من ویزاردی رو یاد گرفتم . الان دارم بدون ویزارد کار می کنم . اما متاسفانه هیچ منبعی هم ندارم . نمیدونم چرا دوستان به جای اینکه جواب سوال منو بدن این همه جواب می نویسن . فکر نکنم جوااب سوالم یک خط بیشتر باشه

روح اله معینی زاده
چهارشنبه 30 فروردین 1385, 16:35 عصر
سلام دوست عزیز

من یه مقدار روش کار کردم و فقط در Bind کردن به جعبه متن مشکل داشتم که اون رو هم به صورت یک موضوع جدید مطرح کردم (البته وصل کردن به گرید رو مشکل ندارم). در کل اگه اشتباه نکنم، تمام کد مربوط به وصل شدن به بانک و دریافت اطلاعات رو توی همون موضوع نوشتم. یه نگاهی بنداز و ببین چیزی متوجه می‌شی یا نه ؟

با احترام- خدانگهدار

na3er-faraji
پنج شنبه 31 فروردین 1385, 07:53 صبح
آره دوست عزیز . دستت درد نکنه . اون کدت کمک خیلی بزرگی به من کرد . البته من قبلا بیند کرده بودم . ولی نمیتونستم تو رکوردها حرکت کنم .