当前位置: 代码迷 >> ASP.NET >> 运用SqlParameter不能给Top后面赋值
  详细解决方案

运用SqlParameter不能给Top后面赋值

热度:8125   发布时间:2013-02-25 00:00:00.0
使用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