PDA

View Full Version : مبتدی: مشکل در شمارش سطر های رکورد



piter11
پنج شنبه 04 دی 1393, 02:05 صبح
من از کد زیر برای شمارش تعداد رکورد جدول استفاده میکنم نمیدونم چرا فقط یه رکوردو میشماره دیگه بعدش هرچی وارد کنی همون 1 نشون میده میشه بگید مشکل کجاست
SqlCommand com = new SqlCommand("select COUNT(*) from senduser1 where tarikh='" + d + "' and girande like '%admin%'", con);
con.Open();
int count=com.ExecuteNonQuery();
label7.Text = count.ToString();

con.Close();

محمد رضا فاتحی
پنج شنبه 04 دی 1393, 08:50 صبح
این کدت اشتباهه
از این کد استفاده کن
SqlCommand com = new SqlCommand("select COUNT(*) from senduser1 where tarikh='" + d + "' and girande like '%admin%'", con);
con.Open();
SqlDataReader dr = com.ExecuteReader();
if (dr.Read())
{
count = Int32.Parse(dr[0].ToString());
}
label7.Text = count.ToString();


con.Close();

piter11
پنج شنبه 04 دی 1393, 19:37 عصر
اینو مینویسم که عدد 0 نشون میده
ببین تو دستور sql اش اینو بهش اضافه میکنم میزنه 0
where tarikh='" + d + "' and girande like '%admin%'
ولی اینجوری ساده بنویسم میشماره
select COUNT(*) from senduser1

مشکل شرط کوئریم چیه؟

piter11
پنج شنبه 04 دی 1393, 20:38 عصر
اینم تابعی که تو شرط کوئری گذاشتم برای tarikh=d هرچی هست مشکل از همینه چون اون لایک تست کردم درست بود ولی این شرط مورد داره
System.Globalization.PersianCalendar PerCal = new System.Globalization.PersianCalendar();
string Year, Day, Month;
Year = PerCal.GetYear(DateTime.Now).ToString();
Month = PerCal.GetMonth(DateTime.Now).ToString();
Day = PerCal.GetDayOfMonth(DateTime.Now).ToString();
Day = (Day.Length == 1) ? "0" + Day : Day;
Month = (Month.Length == 1) ? "0" + Month : Month;
string d = Year + '/' + Month.ToString() + '/' + Day.ToString();

محمد آشتیانی
پنج شنبه 04 دی 1393, 20:51 عصر
سلام
اول اینکه کدت غلطه ، شما برای کوئری select باید از execute reader یا execute scalar استفاده کنی ، مثل پست ۲

اما مسئله بعدی اینه که ابتدا ، شرط where توی کوئری اعمال میشه و بعد شمارش سطرها انجام میشه ، بنابراین وقتی شرط شما باعث میشه فقط یک سطر بعنوان نتیجه نمایش داده بشه ، پس نتیجه count هم ۱ خواهد بود و اگر نتیجه ای نداشته باشه طبیعتا صفر.



موفق باشید

piter11
پنج شنبه 04 دی 1393, 20:52 عصر
آقایون مهندس شرمنده مشکل از خودم بود اسم جدول اشتباه نوشته بودم Sendadmin بود حل شد مرسی :لبخند: