PDA

View Full Version : استفاده از یک رشته در برنامه



مهدی رحیم زاده
جمعه 12 مرداد 1386, 06:34 صبح
سلام ...
من می خوام رشته ای که برای ارتباط با بانک دارم رو توی یک کلاس بزارم و بعد توی تمامی فرمهام از اون استفاده کنم .
برای این کار یک کلاس با این کد ها تعریف کردم :

using System;
using System.Data.OleDb;
using System.Collections.Generic;
using System.Text;

namespace Behdari_kh_sh
{
class connection
{
public string con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=behdari.mdb";
}
}

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

sh_microsoft
جمعه 12 مرداد 1386, 09:29 صبح
سلام دوست من.
کد شما کمی اشکال دارد و درست آن به صورت زیر می باشد :


public string con = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source = behdari.mdb";


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


public string con = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source =" + Application.StartupPath + "\\behdari.mdb (file://\\behdari.mdb)";


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

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

rasoul_ras
سه شنبه 16 مرداد 1386, 14:17 عصر
اگه این کلاس کارش فقط همینه چرا از استراکچر استفاده نمی کنی

MH2538
سه شنبه 16 مرداد 1386, 17:01 عصر
سلام
دوست عزیز
اینطور مواقع به منظور استفاده از یک مقدار برای متغیر ها در کل برنامه ، باید متغیر خود را استاتیک تعریف کنید.
با این روش دیگر نیازی به new کردن ندارید.(یعنی اصلاً نمی شه )و درنتیجه اطلاعاتی که به یک متغیر داده اید در تمامی فرم ها یکسان خواهد بود و با تغییر در یک فرم ،برای همه فرم ها تغییر خواهد کرد.
من کد یک کلاس نمونه که در یکی از پروژه هایم استفاده کردم رو برات می نویسم تا ببینی.



namespace SalesControl
{
class clsCommon
{
public static string StartUpDir = "";
public static string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = behdari.mdb";
public struct UserInfo
{
public static string UserName;
public static string UserID;
public static string FName;
public static string LName;
public static string Password;
public static string PreferedArea;
public static int AccessLevel;
}
public static string LoadProperMessage(string name)
{
try
{

IResourceReader IRR = new ResourceReader(SelectedResourcePath);
ResourceSet RS = new ResourceSet(IRR);
return RS.GetString(name, true);
}
catch (Exception ex)
{
return ex.Message;
}
}
}
}


نحوه استفاده در برنامه


...
...
cnt.ConnectionString = clsCommon.strConnection
UserCurrentArea = clsCommon.UserInfo.PreferedArea
...
...