View Full Version : نحوه شمارش فید های یک دیتا بیس با مقدار خاص
soonami
جمعه 26 دی 1393, 09:59 صبح
سلام. دوستان چگونه میتوان :::
من یک بانک اطلاعاتی دارم ب نام اموزش که داخل دیتا گرید نمایش میدهم
اسم یکی از ستون هاش نوع فراخوان است که با سه مقدار مجزا با کمبو باکس ثبت میکنم داخل بانک
حال من این مقادیر داخل دیتا گرید هم نشون میدم ولی میخوام بصوت مجزا مثلا داخل یک لیبل شمارش کند فیلد مورد نظر با مقدار خاص
________________________________
مثال
من داخل ستون |||||||||||||||||| نوع فراخوان -----<<< 3 تا رکورد ثبت کردم که 2 تاش تجربی بوده ویکی اش عملی >>>>>>>>>>>>>>>> حال این شمارش باید چطوری انجام بدم
یعنی بروز باشه با هر تغییر در داخل بانک و دیتا گرید هم تغییرات ینجا اعمال بشه
که بگه نوع فراخوان : 2 تجربی 1 عملی 0 تحقیقی
__________________________________________________ ___________
erfan_urchin
جمعه 26 دی 1393, 11:14 صبح
شما باید از aggregate method ها استفاده کنی مثلا
select count(farakhaan) from amoozesh where noe_farakhaan = 'tajrobi'
این کد رو باید توی sqlcommand بنویسی و چون این کد فقط یه عدد برمیگردونه دیگه نباید از متد ExecuteNonQuery استفاده کنی و باید از متد ExecuteScalar استفاده کنی یعنی
SqlCommand scom=new SqlCommand("select count(farakhaan) from amoozesh where noe_farakhaan = 'tajrobi'",myConnection);
myConnection.Open();
lableTajrobi.Text = scom.ExecuteScalar().ToString();
myConnection.Close();
soonami
جمعه 26 دی 1393, 12:08 عصر
ممنون من کد شما رو با کمی تغییرات داخل یک دگمه گذاشتم ولی جواب نداد . شرمنده منظور شما رو از اینکه داخل توی sql command بنویسم نفهمیدم
SqlConnection con = null;
SqlCommand scom=new SqlCommand("select count(farakhaan) from amozesh where NoeFarakhan = 'تجربی'",con);
con.Open();
label4.Text = scom.ExecuteScalar().ToString();
con.Close();
sajadsobh
جمعه 26 دی 1393, 22:27 عصر
طبیعیه جواب نده.
SqlConnection رو تعریف کردید ولی مقدار null دادید.
soonami
جمعه 26 دی 1393, 22:48 عصر
طبیعیه جواب نده.
SqlConnection رو تعریف کردید ولی مقدار null دادید.
connect = new SqlConnection("data source =.;initial catalog= amozesh;integrated security=true");
خوب الان باید طبیعتا با این تیکه درست عمل کنه
درسته ولی باز مشکل هست
sajadsobh
جمعه 26 دی 1393, 23:34 عصر
دیتابیس با فارسی مشکل نداره؟! به جای "تجربی" از "tajrobi" استفاده کن یه چک کن ببین چی میشه!
یه چیز دیگه!
الان اون Count(farakhaan) منظور از farakhaan چیه؟!
اول بجای Count(farakhaan) از Count(*) استفاده کن بعد برو سراغ راه بالایی که گفتم.
erfan_urchin
شنبه 27 دی 1393, 12:36 عصر
شما بیا کد رو به این شکل تغییر بده ببین درست میشه؟
SqlCommand scom=new SqlCommand("select count(farakhaan) from amozesh where NoeFarakhan = N'تجربی'",con);
یعنی بیا قبل 'تجربی' یه دونه N بزار
اگه جواب نداد بگو چجوری میشه؟ ارور میده یا چیز دیگه ای میشه
soonami
دوشنبه 29 دی 1393, 14:23 عصر
this.Cursor = Cursors.WaitCursor;
SqlConnection connect = null;
connect = new SqlConnection("data source =.;initial catalog= amozesh;integrated security=true");
SqlCommand scom = new SqlCommand("select count(farakhaan) from amozesh where NoeFarakhan = N'تجربی'",connect);
connect.Open();
label4.Text = scom.ExecuteScalar().ToString();
connect.Close();
سلام ببخشید .این کدی هست که برای نمایش قرار دادم :::::::::::::::::::::::::::
و زمانی ک اجرا میکنم . خطا میگیره از قطعه کد
زیر
label4.Text = scom.ExecuteScalar().ToString();
soonami
پنج شنبه 02 بهمن 1393, 13:56 عصر
لطفا راهنمایی فرمایید
sajadsobh
پنج شنبه 02 بهمن 1393, 15:49 عصر
شما اول بگو farakhaan توی Count(farakhaan) چه معنی میده آخه؟!
soonami
پنج شنبه 02 بهمن 1393, 18:24 عصر
فراخوان اسم جدول 2- یک فیلد داره ب اسم نوع فرا خوان ک با 3 مقدار مختلف _ مقدار دهی میشود """"" و در دیتا گرید ویو نمایش میدهد """"" حال من می خواهم هر زمان اجرا تعداد نوع فراخوانی مثلا آموزشی ک ثبت شده بگه 2 تا و.....
sajadsobh
جمعه 03 بهمن 1393, 01:17 صبح
خب اشتباهه دیگه. آرگومانی که تابع COUNT دریافت میکنه اسم یک ستونه. یا برای اینکه همه ی ستون ها انتخاب بشن باید از COUNT(*) استفاده کنید.
جهت اطلاع بیشتر (http://www.w3schools.com/sql/sql_func_count.asp)
soonami
جمعه 03 بهمن 1393, 12:36 عصر
من میخوام فقط ستون نوع فراخوان انتخاب بشه . داخل ستون مقادیر مختلفی ذخیره شده . ب بقیه ستون ها کاری ندارم
sajadsobh
جمعه 03 بهمن 1393, 19:27 عصر
نمیدونم من دیگه چطور شما رو توجیه کنم. یه مثال محسوس میزنم ببینید.
من یه جدول دارم به اینصورت:
127829
حالا میخوام تعداد بچه هایی که نمره بالای 70 گرفتند رو بدست بیارم. از دوتا کوئری بصورت زیر استفاده میکنم:
127830
همونجور که دیدید نتیجه یکسان میشه. تابع COUNT میاد تعداد رکوردهایی که اون شرط در اونها صدق میکنه رو برمیگردونه و اگه شرطی هم در کار نباشه تعدا کل رکوردهای جدول رو برمیگردونه. پس شما چه نام ستون رو بنویسید و یا از * استفاده کنید اون تعداد برگشت داده میشه. دیگه فکر نکنم بشه از این واضح تر توضیح داد. بازم اگه مشکلی بود در خدمتم.
soonami
جمعه 03 بهمن 1393, 23:53 عصر
ب این صورت نوشتم و جواب گرفتم
int gordan = (from aa in db.Farakhaans
where aa.NoeFarakhan == "گردانی"
select aa).Count();
label4.Text = gordan + " گردانی";
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.