PDA

View Full Version : عدم برگرداندن مقدار از کلاس



Future
چهارشنبه 02 خرداد 1386, 12:21 عصر
سلام دوستان
من تو کلاسم یک متد تعریف کردم و درون آن یک متغیر گذاشتم و به آن یک مقدار اختصاص دادم :

class test
{

public string con;



// Method for connect
public string Conect_DataBase()
{
s = "Data Source = ASUS ; Initial Catalog = DuryHouse ; ID = sa ; Password = 123 ";
return con;
}



در فرم اصلی :


test Conection = new test();


MessageBox.Show(test.con);
sqlConnection1.ConnectionString = test.con;
sqlConnection1.Open();



ولی هیچی بر نمی گرداند.ممنون میشم اگه بگید مشکل کجاست؟؟؟؟

Seivan
چهارشنبه 02 خرداد 1386, 12:38 عصر
شما در متدی که نوشتین اصلا con را مقدار دهی نمی کنید. s ار مقدار دهی می کنید. قبل از نمایش استرینگ نیز
()test.Conect_DataBase را فراخ.انی کنید

m_nejad
چهارشنبه 02 خرداد 1386, 12:38 عصر
سلام دوستان
من تو کلاسم یک متد تعریف کردم و درون آن یک متغیر گذاشتم و به آن یک مقدار اختصاص دادم :

class test
{

public string con;



// Method for connect
public string Conect_DataBase()
{
s = "Data Source = ASUS ; Initial Catalog = DuryHouse ; ID = sa ; Password = 123 ";
return con;
}



در فرم اصلی :


test Conection = new test();


MessageBox.Show(test.con);
sqlConnection1.ConnectionString = test.con;
sqlConnection1.Open();



ولی هیچی بر نمی گرداند.ممنون میشم اگه بگید مشکل کجاست؟؟؟؟


من هم همین مشکل را داشتم.قبلا با vb راحت بود (استفاده از ماژول) توی C# مقدار connectionstring را توی setting (که از add item اضافه کردم) نوشتم.

m_nejad
چهارشنبه 02 خرداد 1386, 12:40 عصر
شاید به کمک روش زیر نیز بشود راه حل را پیدا کرد.

http://www.barnamenevis.org/forum/showthread.php?t=68514

Future
چهارشنبه 02 خرداد 1386, 13:07 عصر
نه ، مشکل برطرف نشد آیا امکانش است یک مثال بزنید

hdv212
چهارشنبه 02 خرداد 1386, 13:26 عصر
اینم نمونه اش، شما اصلا تابعی که در کلاست گذاشتی رو در فرمت فراخوانی نکردی،
شما اصلا متغیر con رو مقدار دهی نکردی،
شما در کلاست تابع سازنده تعریف نکردی،
به هر حال این برنامه رو برات گذاشتم :
موفق باشید

Sorenaa_s
چهارشنبه 02 خرداد 1386, 13:26 عصر
public class test
{
public static string Conect_DataBase()
{
return "Data Source = ASUS ; Initial Catalog = DuryHouse ; ID = sa ; Password = 123 ";
}
}

public class MyForm: Form
{
public MyForm()
{
sqlConnection1.ConnectionString = test.con;
sqlConnection1.Open();
}
}




این اصلاح شده کد شماست. ولی برای حل این مورد بهتره که از Singleton Pattern استفاده کنید، من تو یه تاپیک دیگه یه نمونه کد ساده از این Pattern گذاشتم.

Future
پنج شنبه 03 خرداد 1386, 02:47 صبح
دوست عزیز خیلی خیلی ممنون مشکل را فهمیدم حق با شماست. میشه بگید منظور از Constructor چیست و برای چی بکار می رود؟؟

2) Singleton Pattern یعنی چی؟؟؟

با تشکر

Sorenaa_s
پنج شنبه 03 خرداد 1386, 09:27 صبح
http://www.dofactory.com/Patterns/PatternSingleton.aspx

Keramatifar
پنج شنبه 03 خرداد 1386, 10:19 صبح
دوست عزیز
اگر کانکشن استرینگ رو بصورت مستقیم به یک string اختصاص بدی بعدا ممکنه ConnectionString رو عوض کنی و به مشکل بر بخوری
پس بهتره که مقدار ConnectionString رو از توی Web.Config بخنوی تا اگه عوض شد مشکلی پیش نیاد.

مثال:



string ConnectionString =
System.Configuration.ConfigurationManager.Connecti onStrings["YourConnectionString"].ToString();