c# - 在 C# 中使用参数查询(使用 SQL Server)

标签 c# asp.net sql-server

我在 C# 中遇到查询问题。

我有这部分代码:

string query1 = @"
            SELECT TOP @howManyRows * FROM
            (
            SELECT
               PRODUCTCODE_.ID_ AS PRODUCTCODE_ID_,
               PRODUCTCODE_.CATEGORY_ AS CATEGORY_,
               PRODUCTCODE_.DESCRIPTION_ AS DESCRIPTION_,
               PRODUCTCODE_.MANUFACTURER_ AS MANUFACTURER_,
               PRODUCTLINE_.CREATION_DATE_ AS CREATION_DATE_,
               ROW_NUMBER() OVER (ORDER BY PRODUCTCODE_.CATEGORY_) AS ROWNUMBER_,
               TOTALROWS_ = COUNT(*) OVER()
            FROM
               PRODUCTCODE_
            INNER JOIN
               PRODUCTLINE_ ON PRODUCTLINE_.ID_ = PRODUCTCODE_.PRODUCTLINE_ID_        
            ) _tmpList
            WHERE 
               ROWNUMBER_ >= @startingWith
               ORDER BY CATEGORY_
            ";


SqlParameter param1 = new SqlParameter();
param1.ParameterName = "@howManyRows";
param1.Value = resultPerPage; //`resultPerPage` is an integer function parameter

SqlParameter param2 = new SqlParameter();
param2.ParameterName = "@startingWith";
param2.Value = startsWith;  //`startWith` is an integer function parameter

SqlCommand cmd = new SqlCommand( query1, connect );
cmd.Parameters.Add( param1 );
cmd.Parameters.Add( param2 );

当调试到达 SqlDataReader reader = cmd.ExecuteReader(); 时抛出异常:

Incorrect syntax near @howManyRows ...

为什么?我使用 Parameters 属性定义并添加了 howManyRows

我的错误在哪里?

最佳答案

更改您的顶级查询语法

SELECT TOP @howManyRows * FROM

SELECT TOP (@howManyRows) * FROM

关于c# - 在 C# 中使用参数查询(使用 SQL Server),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8910659/

相关文章:

c# - web.appsettings.config 中的更改是否会触发应用程序池回收?

sql-server - 在SQL Server中将值插入表值参数

c# - 即使最小化也将 key 发送到表单

c# - 重用内存流

c# - Visual Studio 2013 : Testing/Assert Strings

sql - 查询每个人最近参加的事件

SQL - 如何统计每天一行中每种状态的记录?

c# - .NET Core 中的 NLog 事件属性

asp.net - ASP.NET Core mvc 应用程序中的 FFMPEG 录制

.net - ASP.NET MVC3 : Can you post and bind an array of objects?