PDA

View Full Version : سوال درباره کانکشن



sg.programmer
دوشنبه 19 بهمن 1388, 16:21 عصر
آیا باید هر بار موقع اجرای یک SQL کانکشن را باز کرد
یا
یک بار موقع اجرا اپلیکیشن به صورت global
ویا
در هر فرم در ابتدای فرم به صورت سراسری

کداک یک از موارد بالا باید انجام شود ؟ و چرا؟

keivan mousavi
دوشنبه 19 بهمن 1388, 18:02 عصر
هر موقعی که میخوای کاری با دیتابیس انجام دهید مانند عملیات select , updata , insert , delete باید کانکشن را برقرار کنید و در پایان کار کانکشن را ببندید این کار چندتا دلیل داره اولیش اینه که ترافیک شبکه را کاهش میده دومیش اینکه دیتابیس را رها میکنه تا دیتابیس بتواند به دیگر client ها هم خدمات بدهد و سومیش اینه که با این کار از اطلاعات ارسالی محافظت میکنیم

rana-writes
دوشنبه 19 بهمن 1388, 18:12 عصر
سلام
بهتر اینه که توی یک کلاس یک بار تابع کانکت شدن به بانک رو بنویسین و توی برنامه و فرمها، برای هر گونه عملیات بانکی، اون تابع رو فراخوانی کنین
یه چیزی مثل این:



public static SqlConnection ConnectTo()
{
string ConnectionString = "Data Source=.;Initial Catalog=umpire;Integrated Security=True";
SqlConnection connection = newSqlConnection(ConnectionString);
try
{
connection.Open();
}
catch(SqlException)
{

}
return connection;



}


برای استفاده هم میشه به این شکل ازش استفاده کرد:
برای حالت واکشی از بانک مثل دستور select


SqlConnection connection = Connection.ConnectTo();


و برای دستورات درج در بانک مثل insert یا del به این صورت»


using (SqlConnection connection = Connection.ConnectTo())
{
}

و کدهای مربوطه رو می نویسین
موفق باشین

sg.programmer
دوشنبه 19 بهمن 1388, 18:32 عصر
دست هر دو دوست عزیز درد نکنه

یه سوال دیگه

اگه به این شیوه که شما فرمودید کانکشن باز شه دیتا Insert یا DElete و.. بشه بعد بسته بشه
حالا اگه من دوتا برنامه داشته باشم و یک دیتابیس که همزمان از این دیتابیس وجدادلش استفاده کنند به جز دسترسی یه فیلد ، ایا ممکن خطا هم ایجاد بگردد.یعنی اگه فیلدی دستکاری بشه در برنامه ای وبرنامه دیگه از آن صرف نظر کنه موردی نیست .آیا ممکنه خطا صادر بشه از اینکه برنامه دیگه همین الان اونو باز کرده یا نه

در جداول
Access
MySql
Oracle
SQL Server