PDA

View Full Version : سوال: نیاز به کمک فوری : مشکل عجیب در برقراری ارتباط با بانک اطلاعاتی



farboodj1375
پنج شنبه 17 شهریور 1390, 13:45 عصر
سلام دوستان خسته نباشید.
راستش یه مشکل دارم:دیشب پروژم تموم شد و کامپایلش کردم و اومدم یه بار تستش کنم که موقع اجرا برنامه یه ارور داد: DataSource Name Not Found and no defualt drive specefied

البته این ارور نبود و یه پیغام بود . بعد که روی Ok کلیک کردم اون موقع در متد رفرش یکی از بانک هام ارور داد.
جالب اون بود که من اول در تابعی به نام ConnectDb همه دیتایسهام رو با Adodc ها در همه فرم ها وصل میکردم.البته اونجا هم اگه On error resume next استفاده نمیکردم ارور زیاد میداد ولی وقتی از این عبارت استفاده کردم ارور ها دیگه نیومدند و هیچ مشکلی هم بوجود نیومد(!)

این ارور که در اول گفتم هم جالب بود چون فقط این ارور رو تو فرم لود یکی از فرم های دیگه میگرفت (خطا مربوط به رفرش شدن Adodc اون فرم بود)

در حال که من حدود 40 تا فرم دارم و اکثر فرم ها هم Adodc دارند ولی فقط از اون فرم ارور میگرفت.
وقتی تو اون فرم هم On error resume next رو نوشتم دیگه اون ارور نمیومد ولی اون پیغام ( که عکسش رو ضمیمه کردم ) هنوز میومد و البته هیچ مشکلی هم در ارتباط با بانک ها وجود نداشت.

وقتی هم که در زمان طراحی (Design) Adodc رو به بانک وصل میکردم همه مشکلات از بین میرفتند...ولی چون از OpenDialog برای انتخاب عکس در بعضی جاها استفاده میکردم نمیتونم در زمان طراحی بانک ها رو وصل کنم.

این هم کدی که برای اتصال به بانک استفاده میکردم :


frm_listeforooshha.Ado_liste_foroosh.ConnectionStr ing = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Banks\Foroosh.mdb;"
frm_listeforooshha.Ado_liste_foroosh.CommandType = adCmdUnknown
frm_listeforooshha.Ado_liste_foroosh.RecordSource = "SELECT * FROM t1"

frm_listeforooshha.Ado_liste_foroosh.Refresh


با دستکاری این کد هم ( کم یا زیاد کردن ) مشکل حل نشدن.

به دلایلی امکان ضمیمه کردن پروژه رو ندارم...:گریه::گریه::گریه::گری ه::گریه::گریه::گریه::گریه::گری ه::گریه::گریه:
خواهش میکنم کمک کنید بشدت گیر کردم ...
ممنون.

farboodj1375
پنج شنبه 17 شهریور 1390, 14:21 عصر
دوستان گرامی وقتم خیلی کمه...لطفا کمک کنین...:ناراحت:

farboodj1375
پنج شنبه 17 شهریور 1390, 15:10 عصر
تمام تاپیک های برنامه نویسی رو زیرورو کردم مشکلم حل نشد....خواهشا کمک کنید.
:گریه::گریه::گریه::گریه::گریه: :گریه::گریه::گریه::گریه::گریه: :گریه::گریه::گریه::گریه::گریه: :گریه::گریه::گریه::گریه::گریه: :گریه::گریه::گریه::گریه:

akbarg64
پنج شنبه 17 شهریور 1390, 15:33 عصر
خب این ارور میتونه دلایل دیگه ای هم داشته باشه یکیش عدم ارتباط با دیتابیس هست.خوب ببین کجاش اشتباه کردی .

Veteran
پنج شنبه 17 شهریور 1390, 15:36 عصر
adodc رو بیار بعد بورو قسمت custom قسمت general
use connection string مسیری که دادی رو پاک کن بعد بورو سربرگ record source
command type رو بزار روی adcmdunknown
ok
کن حل میشه مشکلت
اتصال رو با کد نویسی انجام بده

farboodj1375
پنج شنبه 17 شهریور 1390, 15:47 عصر
ممنون.
من که گفتم اتصال رو با کدنویسی انجام میدم...
فقط گفتم وقتی تو زمان طراحی اگه ارتباط رو برقرار کنم مشکل حل میشه...
که البته نباید تو زمان طراحی بانک رو وصل کنم ( دلیل رو پست1 توضیح دادم.)


خب ارور ریفرش میتونه دلایل دیگه ای هم داشته باشه یکیش عدم ارتباط با دیتابیس هست.خوب ببین کجاش اشتباه کردی .
از شما هم ممنون.
ولی همونطور که گفتم ارتباط با بانک برقراره...یعنی وقتی از کد On error resume next استفاده میکنم دیگه ارور نمیده ( فقط همون پیغام که عکسش رو تو پست 1 گذاشتم نشون داده میشه) و هیچ مشکل دیگه ای هم نیست ... و ارتباط با بانک هم کاملا برقراره...

ضمن اینکه من گفتم بیش از 40 تا فرم دارم و تو اکثر فرمهام با بانک ها رابطه دارم ... طریقه اتصال هم تو همشون یکیه...حالا فقط همین فرم مشکل داره...

ممنون/

Veteran
پنج شنبه 17 شهریور 1390, 15:52 عصر
من هم قبلا این مشل رو داشتم همینی بود که گفتم و حل شد
adodc رو بیار بعد بورو قسمت custom قسمت general
use connection string مسیری که دادی رو پاک کن بعد بورو سربرگ record source
command type رو بزار روی adcmdunknown
ok

Veteran
پنج شنبه 17 شهریور 1390, 15:57 عصر
اینو بزار توی لود فرمی که مشکل داره قبل کد اتصال به بانک
Adodc1.CommandType = adCmdUnknown

اسمشو بر اساس adodc فومت عوض کن حالا هرچی هست ببین مشکلت حل نمیشه

farboodj1375
پنج شنبه 17 شهریور 1390, 16:09 عصر
همه کارایی که گفتی کردم...حل نشد:گریه::گریه:

تو فرم لودی که میخواد بانکو بخونه اون پیغام میاد...

farboodj1375
پنج شنبه 17 شهریور 1390, 16:22 عصر
کسی نمیدونه که چرا وقتی بانکو تو دیزاین ( طراحی ) وصل میکنیم این مشکل پیش نمیاد؟؟/؟

خیلی عجله دارم...

ممنون.

vbhamed
پنج شنبه 17 شهریور 1390, 17:52 عصر
سلام

معمولا دليلش اينه :
شما تو فرمتون آبجكتهايي دارين كه به ADODC متصل هستن يعني DataSource اونها به ADODC اشاره مي كنه
از طرفي ADODC شما در مرحله طراحي به بانك متصل نشده بنابراين تو همون Form_Load ازتون ايراد مي‌گيره

راه حل :
خاصيت DataSource تمام كنترلهايي كه به ADO متصل هستن رو پاك كنيد و بعد از برقراري ارتباط ADO با بانك اين خاصيت رو براي كنترلهاي روي فرم مقدار دهي كنيد و بعد ADO رو Refresh كنيد
البته دقت كنيد براي اين كار بايد از كلمه كليدي Set استفاده كنيد

Set Text1.DataSource = Adodc1

farboodj1375
پنج شنبه 17 شهریور 1390, 20:23 عصر
با تشکر از آقای VbHamed عزیز و بقیه دوستان.
ممنون.
مشکل من از جای دیگه بود . برای دوستان میگم شاید یه روز بدرد یکی خورد :

من تو رویداد Change یکی از اشیا فرم در بانک عمل جستجو رو انجام میداد.(Select * From t1...)
ظاهرا برنامه تو فرم لود یه نگاهی هم به اون قسمت مینداخته:لبخند:(قبل از اتصال به بانک )

و چون هنوز Adodc به بانک وصل نبوده برنامه ارور میداده...
من تو اول اون روال Change اون شی , این کد رو اضافه کردم :

If Adodc1.ConnectionString ="" Then Exit Sub

در واقع با این کد برنامه میگفتم که اگه هنوز بانک به Adodc وصل نشده,از روال خارج شو...

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

از همگی ممنون.