PDA

View Full Version : جمع تعدادی از فیلدها همزمان با select کردن و نمایش در textbox



hidden68
سه شنبه 19 فروردین 1393, 17:00 عصر
چطوری میتونم این کارو انجام بدم
توی کوئری این کارو انجام میدن اما من نمایشش توی تکست باکس رو بلد نیستم
لطفآ راهنمایی کنید

راستی سلام

kurdboy2175
سه شنبه 19 فروردین 1393, 19:28 عصر
دوست من میتونی بیشتر توضیع بدی

hidden68
سه شنبه 19 فروردین 1393, 19:33 عصر
من میخوام وقتی یه کوئری select مینویسم
یه فیلد مثلآ فیلد قیمت هربار باهم جمع شه
و بعد رکوردهارو بریزم توی دیتا گرید
مقدار جمع شده رو هم توی یه تکست باکس
مثلا این کوئری
Select SUM(salary) FROM Tabalename
این تمام فیلدای salary رو توی جدول باهم جمع میکنه
اما چجوری توی تکست باکس بعد از اجرا نمایش بدیم sum رو
اینو نمیدونم

Mousavmousab
سه شنبه 19 فروردین 1393, 23:31 عصر
شما نگفتین کدتون چیه؟ من نمی دونم چه کدی نوشتین ولی ...

خروجی را بریز توی یک متغیر از نوع Var


var Res = QueryFromYourTable;


بعد ببین Res چه متد هایی داره ؟

یا با حلقه Foreach روی Res می تونی به فیلد ها دسترسی داشته باشی یا نه ؟

ببین SingleResult بر میگردونه چی بر می گردونه؟

hidden68
چهارشنبه 20 فروردین 1393, 02:07 صبح
شما نگفتین کدتون چیه؟ من نمی دونم چه کدی نوشتین ولی ...

خروجی را بریز توی یک متغیر از نوع Var


var Res = QueryFromYourTable;


بعد ببین Res چه متد هایی داره ؟

یا با حلقه Foreach روی Res می تونی به فیلد ها دسترسی داشته باشی یا نه ؟

ببین SingleResult بر میگردونه چی بر می گردونه؟

مرسی داداش
ولی من متوجه جوابت نشدم

من نتیجه اجرای یه کوئری سلکت رو میریزن توی یه datatable یا یه dataset
بعدم دیتاسورسه گرید ویو رو مساوی اون دیتاتیبل یا دیتاست میکنیم
اونوقت کوئری های بدست اومده رو بهم نشون میده
حالا من میخوام ببینم اگه توی کوئریم عملیات ریاضی داشته باشم
به اون قسمت حاصلجمع یا حاصلضرب یا هرچیزه دیگه چجوری دسترسی پیدا کنم؟

مهرداد صفا
چهارشنبه 20 فروردین 1393, 08:47 صبح
سلام.
1- اگر فقط یک مقدار برگردانده می شود می توانید از متود SqlCommand.ExecuteScalar استفاده کنید:

var adapter=new SqlDataAdapter("select sum(Quantity) from [Order Details]","server=.\\SqlExpress;integrated security=true;database=NorthWind;");
adapter.SelectCommand.Connection.Open();
MessageBox.Show(adapter.SelectCommand.ExecuteScala r().ToString());

2- از اندیس ستون مورد نظر استفاده کنید:


adapter.SelectCommand.CommandText ="select Sum(Quantity) as QuantitySum from [order details]";
var table = new DataTable();
adapter.Fill(table);
MessageBox.Show(table.Rows[0][0].ToString());

3- از alias استفاده کنید:


adapter.SelectCommand.CommandText ="select Sum(Quantity) as QuantitySum from [order details]";
var table = new DataTable();
adapter.Fill(table);

MessageBox.Show(table.Rows[0]["QuantitySum"].ToString());

hidden68
جمعه 22 فروردین 1393, 17:52 عصر
این کوئری منه
برای نمایش توی گرید
SQL = "SELECT id as [کد],date as [تاریخ],salary as [حقوق] FROM savabegh WHERE id=" + this.id;
یه کوئریه دیگم نوشتم برای جمع اون فیلد salary
SQL = "SELECT sum(salary) FROM savabegh WHERE id=" + this.id;
بهینه نیست دیگه
نمیشه این دوتارو باهم یکی کرد؟
جوری که هم گرید پر شه
هم جمع اون فیلدها رو توی لیبل نمایش بده
نمیشه؟
پیشاپیش از جواب شما دوست عزیز تشکر به عمل می آید

hidden68
دوشنبه 25 فروردین 1393, 13:28 عصر
هیشکی بلد نیست؟
یعنی راهی نداره؟