首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#的SQL int参数附近有异常

2013-11-25 
C#的SQL int参数附近有错误字符串参数没有问题,问题在于整型变量,将字符串语句中的@number直接换成1是没有

C#的SQL int参数附近有错误
字符串参数没有问题,问题在于整型变量,将字符串语句中的@number直接换成1是没有问题的,说明语法没有问题,那么整型参数是不是有什么细节需要设置?

protected void Page_Load(object sender,EventArgs e)
{
    if(!IsPostBack)
    {
        SqlDataReader MyReader;
        SqlParameter CityName;
        SqlParameter number;

        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DSN_NorthWind"].ConnectionString);
        SqlCommand cmd = conn.CreateCommand();
        cmd.CommandText = "select top @number * from Customers where city=@city";

        number = new SqlParameter();
        number.ParameterName = "@number";
        number.SqlDbType = SqlDbType.Int;
        number.Value = 1;

        CityName = new SqlParameter();
        CityName.ParameterName = "@city";
        CityName.SqlDbType = SqlDbType.VarChar;
        CityName.Value = "Berlin";

        cmd.Parameters.Add(CityName);
        cmd.Parameters.Add(number);

        conn.Open();
        MyReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);

        GridView1.DataSource = MyReader;
        GridView1.DataBind();

        cmd.Dispose();
        conn.Dispose();
    }
}

'@number' 附近有语法错误。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.SqlClient.SqlException: '@number' 附近有语法错误。
[解决办法]
http://stackoverflow.com/questions/1936496/sql-how-do-i-use-parameter-for-top-like-in-select-top-amount
2008以下可以加上括号
select top (@number) 
[解决办法]
语法有问题,如2楼所说,要加括号: (@number)

热点排行