PDA

View Full Version : VB.Net تو دیگه چرا؟ (من نفهمیدم بالاخره کد من اشتباه یا درسته!!!)



vbapr2005
پنج شنبه 21 مهر 1384, 21:06 عصر
آقا بابک وقتی آدم به عدم می رسه دیگه باید این تاپیک ها رو هم ازش انتظار داشت، شما ببخشید

بدترین چیزی که اعصابم رو خورد می کنه اینه که کامپیوتر بعضی وقتا جواب درست بده و بعضی وقتها هم جواب غلط.

من از ADODB برای ارتباط با یه Database که دارای 4 تا جدول هستش استفاده می کنم.(کتاب، نویسنده، مترجم و انتشارات)
توی فرم کتاب (که اطلاعات کتاب انتخاب شده رو نشون میده) من یه cmbAuthor (کمبو باکسی که توش نویسنده (ها) ی متاب قرار دارن) گذاشتم که باید اسم های نویسنده های کتابها رو قرار بده. من ID نویسنده ها ی کتاب مورد نظر رو دارم و اونا رو اینجوری توی کمبو باکس مورد نظر قرار می دم:


Dim j As Integer
For j = 1 To َAuthorRecordSet.Fields.Count
If AuthorRecordSet.Fields("Author ID").Value = AuthorID Then Exit For
AuthorRecordSet.MoveNext()
Next
cmbAuthor.Items.Add(AuthorRecordSet.Firelds("Last Name").Value)



جالب ترین نکته اینه که این کد بعضی وقت ها درست کار می کنه و مشخصات فرد مورد نظر رو درست می گه اما بعضی وقتای دیگه فامیل یه نفر دیگه رو توی لیست اضافه می کنه.

من نمی فهمم آخه این چه حرکتیه؟ اگه اشتباه نوشتم پس هیچکدومش نباید کار کنه اما اگه درست نوشتم پس چرا بعضی وقتا اطلاعات اشتباه می کده؟

خب حالا من از شما می خوام که بعد از این که سه چهار ساعتی روی صفحه ی مانیتور freeze کردیم به من استفاده از متد های Seek و Find رو در ADODB یاد بدین

تنها خواهشی که دارم اینه که نگین از OLEDB استفاده کن. آقا من خودم هم می دونم که اون از هر چیز دیگه ای بهتره اما چیکار کنم دیگه؟ سطح پایینه

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

vbapr2005
پنج شنبه 21 مهر 1384, 21:08 عصر
اضافه می کنم که معمولا اسم افرادی رو که ID ائونها کمتر هست رو بدون اشتباه پیدا می کنه اما وقتی از 20 تا (شاید هم 10 تا) بیشتر می شه، فامیل یه نفر دیگه رو به لیست اضافه می کنه!!!

asilverisis
پنج شنبه 21 مهر 1384, 23:51 عصر
سلام
من نمی گم از Oledb استفاده کن
من میگم چرا از ADO.net استفاده نمی کنی
بعد من فکر کنم مشکل از این خطه For j = 1 To َAuthorRecordSet.Fields.Count
این خط تعداد فیلدا رو برمی گردونه در حالی که شما نیاز به تعداد رکورد ها داری
دقیقا نمی دونم ولی یه چیزی تو مایه های RecordCount

vbapr2005
جمعه 22 مهر 1384, 00:14 صبح
خیلی ممنون از جوابتون
اولا تا اونجایی که من می دونم OleDb آسونترین عضو ADO.Net هستش. اگه نظر دیگه ای دارین میشنوم
ثانیا فرض کنیم همونطوری باشه که شما می گین. من تو خط بعد از For نوشتم:
If AuthorRecordSet.Fields("Author ID").Value = AuthorID Then Exit For
در هر صورت هیچوقت ممکن نیست که دو تا نویسنده با یه ID داشته باشیم چون من توی ساختن دیتابیس، نوع اونو AutoNumber کردم. حتی اگه می نوشتم:
for j as integer = 1 to 3
هم نباید این جواب رو بهم می داد
توجه کنید که الان به من داره اطلاعات غلط می ده
asilverisis عزیز بخاطر جوابت متشکرم
بچه ها اگه شما هم نظری دارین میشنوم چون پاسخ این سوال خیلی برام مهمه

vbapr2005
شنبه 23 مهر 1384, 00:17 صبح
بچه ها فقط بگین چجوری توی ADODB از Find و Seek استفاده کنیم؟
فقط همین

habedijoo
شنبه 23 مهر 1384, 08:52 صبح
سلام

دستور if Then ...Else رو وقتی توی یه خط می نویسی بعضی اوقات به مشکل بر می خوری . یعنی یه بار اجرا میشه و یه بار نمی شه . ( برای من هم پیش اومده )

دستور if ت رو توی دو خط بنویس .
اینجوری بنویس
IF.....then

else

vbapr2005
شنبه 23 مهر 1384, 22:41 عصر
ممنون
امتحانش می کنم و بعدش بهت خبر می دم
کس دیگه ای اگه نظری داره بده خوشحال میشم

asilverisis
شنبه 23 مهر 1384, 23:48 عصر
سلام
عزیز جان من گفتم Ado.Net

OLEDB که شما استفاده می کنی Ado هست ولی .Net نیست

vbapr2005
یک شنبه 24 مهر 1384, 00:14 صبح
خب، مثلا خود شما از چه چیزی استفاده می کنی؟

vbapr2005
یک شنبه 24 مهر 1384, 01:46 صبح
سلللللللللللللللللللللللل لللللام به همه ی بچه های باحال سایت
پسر حلش کردم :قهقهه: :قهقهه: :قهقهه: :قهقهه:

خدا وکیلی چقدر حال داد

تا حالا هیچ وقت اینجوری مث خر تو گل گیر نکرده بودم. واقعا دیگه داشتم قاط می زدم :گیج: :گیج:

خیلی خوشحالم و باید این خوشحالی یو یه جوری بروز بدم :لبخند: :لبخند: :لبخند:

بچه ها. سرنخ رو habedijoo بهم داد. دستت درد نکنه

دقیقا همون چیزی که اون می گفت نیود اما با خودم گفتم بذار از راههایی استفاده کنم که به نظز من فرقی نمی کنه اما یهو دیدی یه فرجی شد :قهقهه: :قهقهه:

و واقعا هم شد :قهقهه:

habedijoo دستت درد نکنه :بوس: :بوس: :بوس:

asilverisis دست تو هم درد نکنه. :چشمک:

دیگه واقعا به عدم مطلق رسیده بودم و داشتم به این فکر می کردم که با سیم Keyboard خودمو خفه کنم یا Mouse؟ :شیطان: :شیطان: :شیطان:

خب، دوستان عزیز و خوشگل من. اجازه بدید به مناسبت این خوشحالی یه چند خطی رو تقدیمتون کنم :لبخند: :لبخند: :لبخند:

این مهمترین، حرفه ای ترین و پیچیده ترین برنامه ایه که تا حالا نوشتم (و البته هنوز خیلی از قسمت هاش مونده اما از دست ما فعلا بیش از این بر نمیاد) :چشمک:

به نظر خودم که عملا برنامه تموم شده اس و دیگه کار مهمی ازش باقی نمونده

خب، این تقدیم به شما که همیشه یاور من بودید :چشمک:

این فایل دیتابیس رو بذارید توی روت درایو D. یا اگه نخواستین برید تو برنامه جاشو عوض کنین :چشمک:

امیدوارم یه روزی بتونم این برنامه رو تمومش کنم


بچه ها انقدر خوشحالم فعلا حال حرف زدن ندارم. بعدا میام براتون توضیح می دم که قراره چیکار کنه

راستی یادتون نره که این رو با VS.Net 2003 نوشتمش.

همه تون خیلی باحالید

:قهقهه: :قهقهه: :قهقهه: :قهقهه: :لبخند: :لبخند: :لبخند: :بوس: :بوس: :بوس: :چشمک: :چشمک: :چشمک: :قهقهه: :قهقهه: :قهقهه: :قهقهه: :لبخند: :لبخند: :لبخند: :بوس: :بوس: :بوس: :لبخندساده :لبخندساده :لبخندساده :لبخندساده

http://www.vbapr.persiangig.com/VB.Net%20My%20Applications/Library%20Manager/BookDB.zip

http://vbapr.persiangig.com/VB.Net%20My%20Applications/Library%20Manager/Book%20Database.zip

habedijoo
یک شنبه 24 مهر 1384, 09:28 صبح
سلام به همگی

چقدر خوشحالم و لذت می برم که می بینم یکی از دوستان سایت اینقدر خوشحال و سر حال شده .

vbapr2005 همین که این قدر خوشحال شدی ما را بس . مطمئن باش این اتفاق برای تک تک ما بچه های این سایت افتاده . جایی که توی گل گیر کرده بودیم یه نفر به دادمون رسیده .


***** فقط اینو هم به تجربیاتت اضافه کن . بعضی اوقات که خطاهای غیر منطقی می بینی به چیزای بدیهی هم شک کن *****

vbapr2005
یک شنبه 24 مهر 1384, 20:59 عصر
ممنون :لبخندساده ، متشکر :لبخندساده
خیلی سپاسگزارم :چشمک:

حالا بذار جریان این برنامه رو برات تعریف کنم:
من این برنامه رو برای یه کتابخونه ی فرضی نوشتم
اطلاعات کتابها، نویسنده ها، مترجمها و ناشرها رو این برنامه در خودش نگه میداره. و ان شاء الله امکان سرچ و سورت رو هم حتما باید بهش اضافه کنم.
اگه نظری، چیزی دارین بگین خوشحال میشم (خوشحال تر میشم! :لبخند: )
میتونی یه نگاهی هم به Options ش بندازی. اگه کاربری نخواد بعضی از فیلد ها رو ببینه میتونه به راحتی این کار رو انجام بده. :چشمک:


راستی یه نکته ی خیلی مهم:
من وقتی از VS.Net 2003 استفاده می کنم و در اون پروژه یه Add Refrence ای صورت گرفته، وقتی برای اولین بار میخوام اون پروژه رو Open کنم، باید اون رفرنس رو پاک کنم و دوباره Add کنم. چون وقتی برای اولین بار بازش می کنم، نمی تونه به صورت درستی اون رفرنس رو بخونه. البته این قاعده برای فایل های exe صادق نیست.
یعنی وقتی میخوام قایل های اجرایی همون پروژه رو ببینم دیگه به درستی کار می کنه


:لبخندساده :چشمک:

habedijoo
دوشنبه 25 مهر 1384, 08:29 صبح
سلام

من هم دقیقا این مشکل رو دارم . ولی موقعی که مسیر برنامه رو عوض می کنم پیش میاد . یعنی وقتی برنامه رو روی یه درایو دیگه کپی میکنم ، باید تمامی کمپوننتها و یا Dll های اضافه شده به برنامه رو پاک کنم و دوباره اضافه کنم .
در صورتی که فایل exe اون بطور صحیح کار می کنه .

من یه مشکل جالبتره دیگه هم دارم :
من وقتی تصویری رو به پروژه ام اضافه می کنم ( فرقی نمیکنه با هر کنترلی که باشه . از فرم گرفته تا PictureBox ) باید حتما یه بار پروژه رو باز و بسته کنم تا تصویر توی اجرا نمایش داده بشه . :متعجب:

vbapr2005
دوشنبه 25 مهر 1384, 13:12 عصر
واقعا که : :متعجب:

Hamedm
سه شنبه 26 مهر 1384, 08:30 صبح
سلام

دوست عزیز، من موفق نشدم فایل دیتابیستو باز کنم. لطفا یکبار دیگه Upload کن.

در پناه حق موفق باشید و پرتوان

vbapr2005
سه شنبه 26 مهر 1384, 10:17 صبح
آقا حامد فایل ها رو تو persiangig گداشتم و اون دیتابیس رو هم تست کردم. مشکلی نداشت
http://vbapr.persiangig.com/VB.Net%20My%20Applications/Library%20Manager/Book%20Database.zip
http://vbapr.persiangig.com/VB.Net%20My%20Applications/Library%20Manager/BookDB.zip
البته همونطور که گفتم کامل نیست اما به نظر من دیگه درباره ی این برنامه سوالی ندارم و فقط باید درستش کنم