C#SQL顶部作为参数
尝试在我的sql语句中参数化TOP的值。
SELECT TOP @topparam * from table1 command.Parameters.Add("@topparam",SqlDbType.VarChar, 10).Value = somevalue.ToString();
这似乎并不奏效。 任何人有任何build议?
只是为了澄清,我不想使用存储过程。
在SQL Server 2005及更高版本中 ,您可以这样做:
SELECT TOP (@topparam) * from table1
你需要至less有SQL Server 2005.这个代码工作正常2005/8例如…
DECLARE @iNum INT SET @iNum = 10 SELECT TOP (@iNum) TableColumnID FROM TableName
如果你有SQL Server 2000,试试这个…
CREATE PROCEDURE TopNRecords @intTop INTEGER AS SET ROWCOUNT @intTop SELECT * FROM SomeTable SET ROWCOUNT 0 GO
你可以写一个内联查询:
EXEC'SELECT TOP'+ @topparam +'* FROM …'
parsing为int,这将防止SQL注入攻击。