PDA

View Full Version : جلو گیری از چندین بار اتصال به بانک



Fastdesign
دوشنبه 29 آبان 1391, 00:41 صبح
سلام

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

با تشکر

ali.bahrami
دوشنبه 29 آبان 1391, 00:50 صبح
ذوست عزیز منظور شما اینه که در فرم اول با بانک اتصال برقرار کنید و از همون اتصال باز در بقیه فرم ها استفاده کنید ؟

samadblaj
دوشنبه 29 آبان 1391, 00:54 صبح
آره منم یه همچین روشی میخوام.
مشکل من اینه که مجبوذ در ابتدای فرم یه سری کد های تکراری رو وارد کنم چطور میتون این اطلاعات رو در یک تابع و در یک کلاس برای استفاده راحت تر استفاده کنم؟

RIG000
دوشنبه 29 آبان 1391, 01:31 صبح
آره منم یه همچین روشی میخوام.
مشکل من اینه که مجبوذ در ابتدای فرم یه سری کد های تکراری رو وارد کنم چطور میتون این اطلاعات رو در یک تابع و در یک کلاس برای استفاده راحت تر استفاده کنم؟
من سوال شما رو دقیقا نفهمیدم. اما اینو (http://barnamenevis.org/showthread.php?369118-%D9%86%D9%88%D8%B4%D8%AA%D9%86-SqlConnection-%D8%AF%D8%B1-%DA%A9%D9%84%D8%A7%D8%B3)ببینید.
در شمن بانک رو باز کنید و بذارید به اومن خدا !!!!
خب هر بار دستوری میدید بانک رو باز دستور رو اجرا و سپس می بندید!

Ahmad765
دوشنبه 29 آبان 1391, 01:38 صبح
با استفاده از using دیگه شما کاری به بستنش ندارید و در انتهای اسکوپ بسته میشه.

شما یک کلاس ایجاد کن و کانکشن رو در اونجا تعریف کن. بعدش فقط کلاس رو فراخوانی کن.

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

mhq1368
دوشنبه 29 آبان 1391, 08:09 صبح
سلام
دوست عزیز شما میتونید به دو روش عمل کنید

یکی اینکه قبل از دستور کانکشن استرینگ تون public بزارین

روش دوم هم اینه که بیاین کانکشن استرینگتون رو تو یه کلاس تعریف کنید بعد در هر جا که خواستین فقط دستور con.open() بنویسید

ali.bahrami
دوشنبه 29 آبان 1391, 12:12 عصر
دوست عزیز کلاسی برای این کار نوشتم . به لینک زیر یه سر بزن
http://barnamenevis.org/showthread.php?369397-%DA%A9%D9%84%D8%A7%D8%B3-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%A8%D9%87-%D8%A8%D8%A7%D9%86%DA%A9-%D9%88-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA-Sql

mhq1368
دوشنبه 29 آبان 1391, 12:45 عصر
شاید کلاس دوستمون بدردتون خورد


دوستان موفق باشید

FastCode
دوشنبه 29 آبان 1391, 12:52 عصر
سلام
این روش اصلاً کار درستی نیست.
برنامتون خطاهای random میده(مخصوصاً در VM)

بهتره connection رو همونجایی که نیاز دارید Construct Open Close و dispose کنید.

mhq1368
دوشنبه 29 آبان 1391, 12:57 عصر
سلام
این روش اصلاً کار درستی نیست.MSSQL
برنامتون خطاهای random میده(مخصوصاً در VM)

بهتره connection رو همونجایی که نیاز دارید Construct Open Close و dispose کنید.


دوست عزیز شما به جواب ها دقت کنید ما که نمیگیم یه جای دیگه کانکشن رو open close یا ... .بکنند ما میگیم اگه کانکشن رو تو فرم 1 دارن یه public بزارن براش بعد هر جا خواستن میتونن open,close یا... بکنن

FastCode
دوشنبه 29 آبان 1391, 13:23 عصر
دوست عزیز شما به جواب ها دقت کنید ما که نمیگیم یه جای دیگه کانکشن رو open close یا ... .بکنند ما میگیم اگه کانکشن رو تو فرم 1 دارن یه public بزارن براش بعد هر جا خواستن میتونن open,close یا... بکنن
دقت کردم
اگر Dispose نشه خطا میده

Ahmad765
دوشنبه 29 آبان 1391, 15:23 عصر
using (SqlConnection cn = new SqlConnection(ConnectionString))
{
}


از این استفاده کنید.