为非函数对象提供的参数.如果参数用作表提示,则需要使用WITH关键字

本文关键字:参数 提示 关键字 WITH 对象 如果 函数 | 更新日期: 2023-09-27 18:11:49

我正在运行Windows 7和II7和SQL server 2008 R2。我有一个aspx程序,当我试图运行它时,我得到以下错误

为对象'users'提供的参数,该对象不是函数。如果参数是用作表提示的,而WITH关键字是必需的。

我的代码是这样的:

  public ArrayList GetGoodsList(string type, string goodsType, string user, string payType, bool flag)
    {
        conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["Conn"].ToString());
        DataSet ds = new DataSet();
        sSql = "select count(*) from users('" + type + "','" + goodsType + "','" + user + "','" + payType + "')";
        if (flag == true)
        {
            sSql += "where IsCommend = 1";
        }
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = conn;
        cmd.CommandText = sSql;
        conn.Open();
        int maxRow = Int32.Parse(cmd.ExecuteScalar().ToString());
        sSql = "select * from users('" + type + "','" + goodsType + "','" + user + "','" + payType + "')";
        if (flag == true)
        {
            sSql += "where IsCommend = 1";
        }
        cmd.CommandText = sSql;
        SqlDataReader reader = cmd.ExecuteReader();
        ArrayList gInfos = new ArrayList();
        GoodsInfo gInfo;
        for (int i = 0; i < maxRow; i++)
        {
            if (reader.Read())
            {
                gInfo = new GoodsInfo();
                gInfo.G_ID = Int32.Parse(reader["G_ID"].ToString());
                gInfo.G_Name = reader["G_Name"].ToString();
                gInfo.Type = reader["Type"].ToString();
                gInfo.GoodsType = reader["GoodsType"].ToString();
                gInfos.Add(gInfo);
            }
        }
        conn.Close();
        return gInfos;
    }

任何想法?谢谢!

为非函数对象提供的参数.如果参数用作表提示,则需要使用WITH关键字

在不透露答案的情况下,您的问题在您的SELECT声明中,sSql = ...

SQL语法不正确。

阅读这篇关于SELECT声明的维基百科文章