" select top @size a.Action_ID, a.[User_ID], a.Total_Score ,b.Action_Desp,b.CreateTime ,b.Point_Change from "
+ " tbl_Action_Hist b inner join tbl_Record_Score a on a.Action_ID=b.Action_ID where a.Action_ID not in (select top (@size * (@now -1)) a.Action_ID from "
+ " tbl_Action_Hist b ) and b.Student_ID=@stuid and b.Point_Change like '-% ' and b.CreateTime between @starTime and @endTime"
这些参数的类型string stuid, int size, int now, DateTime starTime, DateTime endTime
在sql里面没报错,但在程序里面运行之后报错。
'@size' 附近有语法错误。
关键字 'and' 附近有语法错误。
int size = 10;
"select top " + @size + " a.Action_ID, ......"你这里的两个错误都是这个问题引起的。
这样是可以的:
declare @size int
set @size=2
select top (@size) * from master..spt_values你把括号去掉就报错,主要是你放到字符串里面了。
select * from table where Action_ID=@actid
这句里面,Action_ID也是int类型,为什么就不会报错呢
+ " Rhythm, Others from tbl_Record_Score_Detail where Action_ID=@actid");
真的没报错