ورود

View Full Version : ایجاد یک رشته برای تمام اتصال ها به بانک



venus2000
دوشنبه 17 تیر 1387, 11:57 صبح
سلام
می خواستم بدونم چطور میشه برای اتصالا های مختلف به بانک فقط با یکبار ایجاد رشته اتصال به بانک وصل شد و من هربار این رشته رو برای هر query ننویسم؟

newgoldenman
دوشنبه 17 تیر 1387, 13:27 عصر
خيلي ساده. كافيه تا بالاي كد هاي مربوط به Form خودت، رشته ي اتصالي به بانك رو به صورت Private يا اگرهم خواستي Public تعريف كني.

اين يه نمونه هست كه از يكي از برنامه هاي خودم كپي كردم برات:


public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string picturefilename = "";
private SqlConnection con = new SqlConnection(@"Integrated Security=true;Initial Catalog=NGMUniversity;Data Source=(local)");
private SqlCommand cmd = new SqlCommand();
private SqlDataReader dr;
private SqlDataAdapter da = new SqlDataAdapter();
private DataTable dt = new DataTable();
...
{

naeeme
دوشنبه 17 تیر 1387, 14:08 عصر
در یک کلاس به صورت استاتیک تعریف کنید، بعد هرجای برنامه که نیاز داشتین از اون استفاده کنین.
بهتره در کل برنامه یک SqlConnection داشته باشین که همه جا از همون استفاده کنین.

اگه هم یه نگاه به این پست بندازین، خیلی توی اصولی نوشتن کمکتون می کنه( البته کدها به زیان VB.net هست که اصولش تفاوت چندانی با C# نداره)

نکاتی درباره ADO.Net (http://barnamenevis.org/forum/showpost.php?p=495646)

مهدی رحیم زاده
دوشنبه 17 تیر 1387, 21:46 عصر
منم فکر می کنم بهترین راه اینه که شما یک کلاس برای کار با بانک اطلاعاتی تعریف کنید . بعد فقط یک بار توی این کلاس ConnectionString رو تعریف کنید. می تونید برای پویا شدن این کانکشن اون رو به صورت یه کلید توی App.config تعریف کنید و بعد توی برنامه از اون استفاده کنید.
موفق باشید

migrant
دوشنبه 17 تیر 1387, 23:28 عصر
منم فکر می کنم بهترین راه اینه که شما یک کلاس برای کار با بانک اطلاعاتی تعریف کنید . بعد فقط یک بار توی این کلاس ConnectionString رو تعریف کنید. می تونید برای پویا شدن این کانکشن اون رو به صورت یه کلید توی App.config تعریف کنید و بعد توی برنامه از اون استفاده کنید.
موفق باشید

میشه در این مورد و نحوه اینکار بیشتر توضیح بدید ؟؟؟

مهدی رحیم زاده
سه شنبه 18 تیر 1387, 06:41 صبح
ببینید دوست عزیزم
من برای این کار یک کلاس تعریف کردم که دو تا تابع داره . یکی برای خوندن اطلاعات و یکی برای Insert,Delete,Edit تنها جایی که از ConnectionString استفاده کردم همینجا بود . توی برنامه هم هر جا که لازم باشه یک آبجکت از این کلاس ایجاد می کنم و از اون استفاده می کنم .
در باره این موضوع قبلا توی سایت بحث شده بود . به اون تاپیک ها هم یه سری بزنید خالی از لطف نیست . متاسفانه من الان وقت ندارم که براتون سرچ کنم وگرنه لینک هم براتون میزاشتم.
موفق باشید .

corona
سه شنبه 18 تیر 1387, 07:55 صبح
ببین دوست عزیز وقتی در جاهای مختلف برنامت نیاز به اتصال به بانک اطلاعاتی داری ، بهترین را اینه که یک رشته هتصال کلی برای پروژه

ایجاد کنید تا همه جای پروژه از اون استفاده کنی و برای اینکار ساده ترین راه اینه که در قسمت soloution explorer ، زیر نام پروژه شما

پوشه properties وجود دارهو داخل اون قسمتی به نام settiins.settings وجود داره ، روی اون دابل کلیک می کنی ، بعد در پنجره ای

که باز میشه در قسمت name یک نام برای connection string و در قسمت Type نوع اون رو connection string انتخاب می کنیو به

scope کاری نداری و از قسمت value آدرش دیتا بیسی که میخوای بهش اتصال داشته باشی رو میدی و تغییرات رو save می کنی .

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

project name.properties.settings.default.connection string name استفاده می کنی ، مثلا فرض کن نام پروژه من database

باشه و اسم connection string من constrtext پس باسد به صورت زیر هر جای پروژه که خواستم از اون استفاده کنم :

DataBase.Properties.Settings.Default.ConStrTest

این فکر می کنم بهینه ترین راه ممکن برای ایجاد رشته اتصال باشه . امیدوارم خوب گفته باشم .

naeeme
سه شنبه 18 تیر 1387, 08:59 صبح
یه ذره شما در مورد Data Access Layer (DAL) و معماری چند لایه جستجو کنین. اگه کارهای مربوط به Database رو از بقیه فعالیت های برنامه جداکنید، در این حالت از مزایای بسیار زیاد OO می تونید استفاده کنید وگرنه شما در واقع قابلیت های C# رو کنار گذاشتین و مثل یه زبان ساخت یافته مثل بیسیک اولیه یا پاسکال از سی شارپ استفاده می کنین!!

بهترین کار همونطور که iranmsbگفتن، اینه که یک کلاس بگیرید، توی اون کلاس کانکشن استرینگ و اتصال به پایگاه رو تعریف کنید.
یک متد برای خواندن از پایگاه که می تونه ورودی اون دستور اس کیوال باشه و خروجیش براساس نیاز شما مثلا Datatable، باشه.
یک متد برای اجرای دستوراتی نظیر Update یا Delete که ورودی اون هم می تونه SQL باشه و خروجی Bool.
اینها البته یه طرحه! هر کس براساس نیازهای خودش می تونه اینها رو طراحی کنه.
همون لینکی که توی پست 3 معرفی کردم رو بخونید خیلی کمک می کنه. برای تبدیل به C# هم می تونید از یه مبدل استفاده کنید مثل این (http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx)

RED-C0DE
سه شنبه 18 تیر 1387, 09:50 صبح
بهترین کار ایجاد یک کلاس singleton هست برای داشتن یک نقطه اتصال سراسری به دیتابیستون...و sinpin توی یک پستش این لینک رو برای این موضوع قرار داده بود :
http://ehsanbraindump.blogspot.com/2007/05/singleton-ammendment-1.html

jeus
سه شنبه 18 تیر 1387, 09:51 صبح
سلام
همینجومر که میدونی سی شارپ oop است و برای همین میتونی کارهاتو به ساده ترین نحو انجام بدی اگه جواب سئوالهایی را که ازت میپرسم را بدی راه آسون را انتخاب میکنی
اول از همه دوست داری که هر جا بتونی از دستورات SQL استفاده کنی (توی هر فرم هر کلاس و ...)
دوم آیا برات مهمه که بتونی چارت صحیحی از استفاده از کلاسها داشته باشی
سوم آیا نظم و یکپارچگی کدهایی که مینویسی برات مهمه و دوست داری که کدهای مربوط به هم در یک جا جمع باشند ؟
موفق باشی