PDA

View Full Version : مشکل ارور specified cast is not valid و جمع زدن ارقام دیتابیس



ab.cde
سه شنبه 11 تیر 1392, 16:55 عصر
سلام
ی جدول تو دیتابیسم دارم که فیلداش مثل زیره:

table(id,sh_melli,y1,y2,modat_kol,modat_y1,modat_y 2)
که تو برنامه شماره ملی و 2تا شماره سال رو میدم و همراه با مدت بین این 2سال و اگر که در آخر سال باشه با حساب کردن تعداد روز هر سال تو جدول ذخیره میشه!

مشکل اینه که حالا یه کوئری میخام که بیاد شماره ملی و شماره سال رو بگیره و جمع کل روزهاشو بده؟؟؟؟؟
string s1 = "select sum(my1) from table where sh_melli='" + lmelli.Text + "' and y1='" + PersianYear + "' and y2 <> '" + PersianYear + "'";

persianyerar هم از نوع int
من اینو نوشتم ولی ارور زیرو میده:
specified cast is not valid
لطفا اگه کسی راهی میدونه راهنمایی کنه!

hamid_hr
سه شنبه 11 تیر 1392, 17:07 عصر
<> اشتباهه
and not y2 = '" + PersianYear + "'"

Mahmoud.Afrad
سه شنبه 11 تیر 1392, 17:11 عصر
مقادیری که رشته نیستند نیاز به تک کوتیشن ندارند.

بهتره برای حفظ امنیت برنامتون هم که شده توسط پارامتر این کار رو انجام بدید.

SqlCommand cmd = new SqlCommand("select sum(my1) from table where sh_melli=@melli and y1=@y1 and y2<>@y2");
cmd.Parameters.AddWithValue("@melli", lmelli.Text);
cmd.Parameters.AddWithValue("@y1", PersianYear);
cmd.Parameters.AddWithValue("@y2", PersianYear);



<> اشتباهه
and not y2 = '" + PersianYear + "'"
چرا اشتباهه؟!
http://msdn.microsoft.com/en-us/library/ms188074.aspx