日期:2014-05-17  浏览次数:20472 次

使用SqlParameter不能给Top后面赋值
C# code
string sql = "SELECT TOP @Index * FROM [KeyWorkList]";
            SqlParameter[] paras = {new SqlParameter("@Index",SqlDbType.Int,4) };
            paras[0].Value = 5;
            DataTable ToDayDt= DBHelper.SelectForDT(sql,paras);

一直报 '@Index' 附近有语法错误。的错误,该怎么写呢?

------解决方案--------------------
1.你这个要 用 存储过程,或 表值函数 了

2.动态 SQL 也可以,

create proc test
(
@Index int
)
as
begion

begion try

DECALER @sqlstr NVARCHAR(1000)

SET @sqlstr ='SELECT TOP '+@Index+' * FROM [KeyWorkList]'

EXEC(@sqlstr)
//sp_executesql 这个也可以 
end try
begion catch
return @@error
end catch

end