PDA

View Full Version : دسترسی به فیلدهای آرایه ای که به عنوان خروجی کلاس تعریف شده در برنامه



alibabaei2
دوشنبه 18 اردیبهشت 1391, 20:17 عصر
با سلام
خروجی متدی از یک کلاسم از جنس آرایه هست
درون فیلدهای این آرایه فیلدهای یک رکورد از جدول دیتا بیس ریخته شده
می خواستم ببینم راهی هست که من وقتی دارم این متد رو فراخوانی می کنم و می خوام به فیلدهای این آرایه دسترسی داشته باشم بهم نشون بده که درون هرکدوم از این فیلدها کدوم یک از فیلدهای دیتا بیس ریخته شده؟

alibabaei2
دوشنبه 18 اردیبهشت 1391, 21:55 عصر
ببینید من می خوام مثل ورودی تابع که یک سری متغیر تعریف می کنیم و سمت برنامه وقتی می خوایم ورودی ها رو بدیم به ما میگه که این ورودی موقع تعریف تابع به چه اسمی تعریف شده برای خروجی هم یه همچین حالتی باشه
الان وقتی می خوام از مقادیری که درون آرایه ی خروجی است استفاده کنم همش باید برم تو کلاس رو ببینم که خونه ی i ام آرایه چه فیلدی رو به من میده

Mahmoud.Afrad
دوشنبه 18 اردیبهشت 1391, 22:20 عصر
خوب گفتم دیگه آرایه رو باید دوبعدی کنید و در کلاسی که نوشتید همراه مقدار ، آیدی اون مقدار رو هم در ردیف دوم آرایه ذخیره کنید و این آرایه رو برگشت بدید. بعدا هم هر فیلد از سطر اول آرایه مقدار و فیلد متناظر در ردیف دوم میشه آی دی اون فیلد و نیازی به مراجعه به دیستابیس و یا کلاس نیست.

alibabaei2
سه شنبه 19 اردیبهشت 1391, 02:08 صبح
من درون کلاس این کد رو نوشتم

public string[,] SelectRow(int UserID)
{
string[,] SingleUserInfo = new string[1, 1];

var n = (from u in DataContext.Context.Users
where u.UserID == UserID
select u).SingleOrDefault();
SingleUserInfo[0, 0] = "userID";
SingleUserInfo[0, 1] = n.UserID.ToString();
return SingleUserInfo;
}

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

Mahmoud.Afrad
سه شنبه 19 اردیبهشت 1391, 03:20 صبح
خوب اگر میخواهید یک سطر از دیتابیس رو بازگشت بدید از datarow استفاده کنید و انو برگردونید.
مثال:


public DataRow SelectRow(int _CityCode)
{
DataRow row;
row = tbl_cityTableAdapter.GetDataBySelectRow(_CityCode) .Rows[0];
return row;
}

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


datarow میشه همون سطر مورد نظر. از آنجایی که datarow دارای همان ستونها و با همان نام فیلدهای جدول دیتابیس هست میتونید از همون اسامی ستونهای جدول دیتابیس استفاده کنید.
مثال استفاده از متد بالا:


private void button3_Click(object sender, EventArgs e)
{
DataRow dtrow;

dtrow = SelectRow(4);

textBox1.Text = Convert.ToString(dtrow["city_name"]);
textBox2.Text = Convert.ToString(dtrow["code_city"]);
}