PDA

View Full Version : مبتدی: دسترسي به تك تك خانه هاي DataTable



federrer
پنج شنبه 06 بهمن 1390, 19:32 عصر
سلام

خروجي كوئري من يه جدول با 3 ستون و 3سطر شده است.
میخوام به تك تك اين مقادير دسترسي داشته باشم . فکر کنم بايد از Datatable استفاده كنم.

نمونه كدهاي زيادي رو ديدم اما در انتقال اطلاعات از نتیجه کوئری به دیتا تیبل گیر کردم.

در نهایت هر مقدار از خانه هاي ديتا تيبل رو ميخوام روي Lable نمايش بدم.

majid784
پنج شنبه 06 بهمن 1390, 21:41 عصر
با استفاده از شماره سطر و نام یا شماره ستون میتونی به خونه موردنظر دسترسی داشته باش. منظور از نام ستون نام همون فیلد موردنظر در دیتابیسه. فرض کن خروجی کوئری رو در Datatable ای به نام dt ریختی. و دومین فیلدی که تو خروجی کوئری اومده اسمش FirstName باشه. حالا برای اینکه به مقدار FirstName اولین سطر خروجی دسترسی داشته باشی میتونی از یکی از دو دستور زیر استفاده کنی.



string s = dt.Rows[0]["FirstName"].ToString();


یا



string s = dt.Rows[0][1].ToString();

federrer
پنج شنبه 06 بهمن 1390, 21:54 عصر
دستت درد نکنه ، بی زحمت یه چک کن با این کد خروجی کوئری رو درست توی Datatable ریختم؟؟!




string strsql2 = "Select b3,b4,b2 from read1 where b7=@Search"
SqlCommand Cmd2 = new SqlCommand(strsql2, Cnn);

Cmd2.Parameters.Add(new SqlParameter("@Search", SqlDbType.NVarChar));
Cmd2.Parameters["@Search"].Value = txtname.Text;

DataTable DT2 = new DataTable("T1");

DT2.columns.Add("b3", Type.GetType("System.String"));
DT2.columns.Add("b4", Type.GetType("System.String"));
DT2.columns.Add("b2", Type.GetType("System.String"));

SqlDataAdapter SDR2 = new SqlDataAdapter(strsql2, Cnn);
SDR2.SelectCommand = Cmd2;

SDR.Fill(DT2, "T1");


L6.Text = DT2.rows[0]["b3"].ToString();

fakhravari
پنج شنبه 06 بهمن 1390, 22:02 عصر
http://barnamenevis.org/showthread.php?324837-%D9%85%D9%82%D8%A7%D9%84%D9%87-%D9%BE%DB%8C%D8%A7%D8%AF%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D9%88-%D8%B3%D8%A7%D8%AE%D8%AA-DataAccessLayer-%28%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%DA%86%D9%86%D8%AF%D9%84%D8%A7%DB%8C%D9%87-%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%D8%A8%D9%87-%D8%AF%D8%A7%D8%AF%D9%87%29-%D8%AF%D8%B1-%D9%82%D8%A7%D9%84%D8%A8-%DB%8C%DA%A9-%D9%BE%D8%B1%D9%88%DA%98%D9%87&p=1428034&viewfull=1#post1428034

federrer
جمعه 07 بهمن 1390, 12:31 عصر
دوستان ، كد موردنظرم به صورت زير شده - يه كمك بدين اگر بخوام از for براي سطرهاي DataTable استفاده كنم و از آرايه براي هر زوج از Lable ها استفاده كنم ، چه تغييراتي بايد بدم ؟؟؟



string a = DT2.Rows[1]["b3"].ToString();
string b = DT2.Rows[1]["b4"].ToString();
L1.Text = a + " " + b;

string c = DT2.Rows[1]["b2"].ToString();
L2.Text = c;
//-----------------------------------------
a = DT2.Rows[2]["b3"].ToString();
b = DT2.Rows[2]["b4"].ToString();
L3.Text = a + " " + b;

c = DT2.Rows[2]["b2"].ToString();
L4.Text = c;
//--------------------------------------------
a = DT2.Rows[3]["b3"].ToString();
b = DT2.Rows[3]["b4"].ToString();
L5.Text = a + " " + b;

c = DT2.Rows[3]["b2"].ToString();
L6.Text = c;

//-----------------------------------------

parvizwpf
جمعه 07 بهمن 1390, 15:10 عصر
دقیقا منظورت چیه؟
فور تو در تو معمولا برای آرایه ها استفاده میشه

federrer
جمعه 07 بهمن 1390, 22:16 عصر
اگر از متغیر i در حلقه for بعنوان شمارنده سطرهای استفاده کنم بصورت :
for
(++ i=0,i<DT2.Rows.count,i)
[" DT2.Rows[i]["b3

حالا با ازای هر باراضافه شدن i ، چطور مقادیر جدید رو در L(a).Text و L(b).Text بریزم ؟؟؟

parvizwpf
جمعه 07 بهمن 1390, 23:49 عصر
for (int i=0;i<dt.rows.count;i++)
{
L1.Text=dt.rows[i]["b1"];
L2.Text=dt.rows[i]["b2"];
L3.Text=dt.rows[i]["b3"];
}

atbin2010
شنبه 08 بهمن 1390, 07:04 صبح
foreach (datarow dr in dt.rows)
{
int id=dr["id"];
}

federrer
شنبه 08 بهمن 1390, 21:04 عصر
for (int i=0;i<dt.rows.count;i++)
{
L1.Text=dt.rows[i]["b1"];
L2.Text=dt.rows[i]["b2"];
L3.Text=dt.rows[i]["b3"];
}


دوست عزیزم ، اصل مسئله همون جفتی در نظر گرفتن Lable هاست .وگرنه در حد نوشتن این For مشکلی نیست!

وقتی که 0=i هست :




L1.Text=dt.rows[0]["b1"];
L2.Text=dt.rows[0]["b2"];



وقتی 1=i شد اونوقت :




L3.Text=dt.rows[1]["b1"];
L4.Text=dt.rows[1]["b2"];



و اگر 2=i شد هم :



L5.Text=dt.rows[2]["b1"];
L6.Text=dt.rows[2]["b2"];

sara.65
یک شنبه 09 بهمن 1390, 20:26 عصر
باید واسه زوج لیبل ها از یه ارایه استفاده کنی