当前位置:编程学习 > C#/ASP.NET >>

System.Data.SqlClient.SqlException: 第 1 行: '(' 附近有语法错误


这个问题怎么解决啊? --------------------编程问答-------------------- sql语句有错 --------------------编程问答-------------------- 那具体怎么修改的啊。。? --------------------编程问答-------------------- 这个很明显是sql语句有误,好好检查下sql语句,或者把sql语句贴出来大家看看 --------------------编程问答-------------------- 检查你的sql语句。 --------------------编程问答-------------------- #region   执行参数命令文本(有返回值)
    /// <summary>
    /// 执行查询命令文本,并且返回DataSet数据集
    /// </summary>
    /// <param name="procName">命令文本</param>
    /// <param name="prams">参数对象</param>
    /// <param name="tbName">数据表名称</param>
    /// <returns></returns>
    public DataSet RunProcReturn(string procName, SqlParameter[] prams, string tbName)
    {
        SqlDataAdapter dap = CreateDataAdaper(procName, prams);
        DataSet ds = new DataSet();
        dap.Fill(ds, tbName);
        this.Close();
        //得到执行成功返回值
        return ds;
    }

    /// <summary>
    /// 执行命令文本,并且返回DataSet数据集
    /// </summary>
    /// <param name="procName">命令文本</param>
    /// <param name="tbName">数据表名称</param>
    /// <returns>DataSet</returns>
    public DataSet RunProcReturn(string procName, string tbName)
    {
        SqlDataAdapter dap = CreateDataAdaper(procName, null);
        DataSet ds = new DataSet();
        dap.Fill(ds, tbName);
        this.Close();
        //得到执行成功返回值
        return ds;
    }

    #endregion --------------------编程问答-------------------- 你把sql语句贴出来啊 --------------------编程问答-------------------- #region  添加供求信息
    /// <summary>
    /// 添加供求信息
    /// </summary>
    /// <param name="type">信息类别</param>
    /// <param name="title">标题</param>
    /// <param name="info">内容</param>
    /// <param name="linkMan">联系人</param>
    /// <param name="tel">联系电话</param>
    public void InsertInfo(string type, string title, string info, string linkMan, string tel)
    {
        SqlParameter[] parms ={ 
            data.MakeInParam("@type",SqlDbType.VarChar,50,type),
            data.MakeInParam("@title",SqlDbType.VarChar,50,title),
            data.MakeInParam("@info",SqlDbType.VarChar,500,info),
            data.MakeInParam("@linkMan",SqlDbType.VarChar,50,linkMan),
            data.MakeInParam("@tel",SqlDbType.VarChar,50,tel),
        };
        int i = data.RunProc("INSERT INTO info (type, title, info, linkman, tel) VALUES (@type, @title,@info,@linkMan, @tel)", parms);
    }
    #endregion

    #region  修改供求信息
    /// <summary>
    /// 修改供求信息的审核状态
    /// </summary>
    /// <param name="id">信息ID</param>
    /// <param name="type">信息类型</param>
    public void UpdateInfo(string id, string type)
    {

        DataSet ds = this.SelectInfo(type, Convert.ToInt32(id));
        bool checkState = Convert.ToBoolean(ds.Tables[0].Rows[0][6].ToString());
        int i;
        if (checkState)
        {
            i = data.RunProc("UPDATE info SET checkState = 0 WHERE (ID = " + id + ")");
        }
        else
        {
            i = data.RunProc("UPDATE info SET checkState = 1 WHERE (ID = " + id + ")");
        }
    }
    #endregion

    #region  删除供求信息

    /// <summary>
    /// 删除指定的供求信息
    /// </summary>
    /// <param name="id">供求信息ID</param>
    public void DeleteInfo(string id)
    {
        int d = data.RunProc("Delete from info where id='" + id + "'");
    }

    #endregion

    #region  查询供求信息
    /// <summary>
    /// 按类型查询供求信息
    /// </summary>
    /// <param name="type">供求信息类型</param>
    /// <returns>返回查询结果DataSet数据集</returns>
    public DataSet SelectInfo(string type)
    {
        SqlParameter[] parms ={ data.MakeInParam("@type", SqlDbType.VarChar, 50, type) };
        return data.RunProcReturn("SELECT ID, type, title, info, linkman, tel, checkState, date FROM info where type=@type ORDER BY date DESC", parms, "info");
    }
    /// <summary>
    /// 按类型和ID查询供求信息
    /// </summary>
    /// <param name="type">供求信息类型</param>
    /// <param name="id">供求信息ID</param>
    /// <returns>返回查询结果DataSet数据集</returns>
    public DataSet SelectInfo(string type, int id)
    {
        SqlParameter[] parms ={ 
            data.MakeInParam("@type", SqlDbType.VarChar, 50, type) ,
        };
        return data.RunProcReturn("SELECT ID, type, title, info, linkman, tel, checkState, date FROM info where (type=@type) AND (ID=" + id + ") ORDER BY date DESC", parms, "info1");
    }
    /// <summary>
    /// 按信息类型查询,审核和未审核信息。
    /// </summary>
    /// <param name="type">信息类型</param>
    /// <param name="checkState">True 显示审核信息 False显示未审核信息</param>
    /// <returns>返回查询结果DataSet数据集</returns>
    public DataSet SelectInfo(string type, bool checkState)
    {
        return data.RunProcReturn("select * from info where type='" + type + "' and checkState='" + checkState + "'", "info");
    }

    /// <summary>
    /// 供求信息快速检索
    /// </summary>
    /// <param name="type">信息类型</param>
    /// <param name="infoSearch">查询信息的关键字</param>
    /// <returns>返回查询结果DataSet数据集</returns>
    public DataSet SelectInfo(string type, string infoSearch)
    {
        SqlParameter[] pars ={
            data.MakeInParam("@type", SqlDbType.VarChar, 50, type) ,
            data.MakeInParam("@info",SqlDbType.VarChar,50,"%"+infoSearch+"%")
        };
        return data.RunProcReturn("select * from info where (type=@type) and (info like @info) and (checkstate=1)", pars, "info");
    }

    #endregion

    #region 添加收费供求信息

    /// <summary>
    /// 添加收费供求信息
    /// </summary>
    /// <param name="type">信息类型</param>
    /// <param name="title">信息标题</param>
    /// <param name="info">信息内容</param>
    /// <param name="linkMan">联系人</param>
    /// <param name="tel">联系电话</param>
    /// <param name="sumDay">有时天数</param>
    public void InsertLeaguerInfo(string type, string title, string info, string linkMan, string tel, DateTime sumDay,bool checkState)
    {
        SqlParameter[] parms ={ 
            data.MakeInParam("@type",SqlDbType.VarChar,50,type),
            data.MakeInParam("@title",SqlDbType.VarChar,50,title),
            data.MakeInParam("@info",SqlDbType.VarChar,500,info),
            data.MakeInParam("@linkMan",SqlDbType.VarChar,50,linkMan),
            data.MakeInParam("@tel",SqlDbType.VarChar,50,tel),
            data.MakeInParam("@showday",SqlDbType.DateTime,8,sumDay),
            data.MakeInParam("@CheckState",SqlDbType.VarChar,1,checkState)
        };
        int i = data.RunProc("INSERT INTO LeaguerInfo (type, title, info, linkman, tel,showday,checkState) VALUES (@type, @title,@info,@linkMan, @tel,@showday,@CheckState)", parms);
    }
    #endregion

    #region  删除收费供求信息
    /// <summary>
    /// 删除收费供求信息
    /// </summary>
    /// <param name="id">要删除信息的ID</param>
    public void DeleteLeaguerInfo(string id)
    {
        int d = data.RunProc("Delete from LeaguerInfo where id='" + id + "'");
    }
    #endregion

    #region  查询收费供求信息
    /// <summary>
    /// 显示所有的收费信息
    /// </summary>
    /// <returns>返回DataSet结果集</returns>
    public DataSet SelectLeaguerInfo()
    {
        return data.RunProcReturn("Select * from LeaguerInfo order by date desc", "LeaguerInfo");
    }
    /// <summary>
    /// 查询收费到期和未到期供求信息
    /// </summary>
    /// <param name="All">True显示未到期信息,False显示到期信息</param>
    /// <returns>返回DataSet结果集</returns>
    public DataSet SelectLeaguerInfo(bool All)
    {
        if (All)      //显示有效收费信息
            return data.RunProcReturn("Select * from LeaguerInfo where showday >= getdate() order by date desc", "LeaguerInfo");
        else       //显示过期收费信息
            return data.RunProcReturn("select * from LeaguerInfo where showday<getdate() order by date desc", "LeaguerInfo");
    }
    /// <summary>
    /// 查询同类型收费到期和未到期供求信息
    /// </summary>
    /// <param name="all">True显示未到期信息,False显示到期信息</param>
    /// <param name="infoType">信息类型</param>
    /// <returns>返回DataSet结果集</returns>
    public DataSet SelectLeaguerInfo(bool All, string infoType)
    {
        if (All)      //显示有效收费信息
            return data.RunProcReturn("Select * from LeaguerInfo where type='" + infoType + "' and showday >= getdate() order by date desc", "LeaguerInfo");
        else       //显示过期收费信息
            return data.RunProcReturn("Select * from LeaguerInfo where type='" + infoType + "' and showday<getdate() order by date desc", "LeaguerInfo");
    }
    /// <summary>
    /// 查询显示‘按类型未过期推荐信息’或‘所有的未过期推荐信息’
    /// </summary>
    /// <param name="infoType">信息类型</param>
    /// <param name="checkState">True按类型显示未过期推荐信息  False显示所有未过期推荐信息</param>
    /// <returns></returns>
    public DataSet SelectLeaguerInfo(string infoType,bool checkState)
    {
        if (checkState)   //按类型未过期推荐信息
            return data.RunProcReturn("SELECT top 20 * FROM LeaguerInfo WHERE (type = '" + infoType + "') AND (showday >= GETDATE()) AND (CheckState = '" + checkState + "') ORDER BY date DESC", "LeaguerInfo");
        else       //显示未过期推荐信息
            return data.RunProcReturn("SELECT top 10 * FROM LeaguerInfo WHERE (showday >=GETDATE()) AND (CheckState = '" + !checkState + "') ORDER BY date DESC", "LeaguerInfo");
    }
    /// <summary>
    /// 查询同类型收费到期和未到期供求信息(前N条信息)
    /// </summary>
    /// <param name="all">True显示有效收费信息,False显示过期收费信息</param>
    /// <param name="infoType">信息类型</param>
    /// <param name="top">获取前N条信息</param>
    /// <returns></returns>
    public DataSet SelectLeaguerInfo(bool All, string infoType, int top)
    {
        if (All)      //显示有效收费信息
            return data.RunProcReturn("Select top(" + top + ") * from LeaguerInfo where type='" + infoType + "' and showday >= getdate() order by date desc", "LeaguerInfo");
        else       //显示过期收费信息
            return data.RunProcReturn("select top(" + top + ") * from LeaguerInfo where type='" + infoType + "' and showday<getdate() order by date desc", "LeaguerInfo");
    }
    /// <summary>
    /// 根据ID查询收费供求信息
    /// </summary>
    /// <param name="id">供求信息ID</param>
    /// <returns></returns>
    public DataSet SelectLeaguerInfo(string id)
    {
        return data.RunProcReturn("Select * from LeaguerInfo where id='" + id + "' order by date desc", "LeaguerInfo");
    }

    #endregion --------------------编程问答-------------------- 1.用String.Format写SQL语句
2.用SQLDataReader查询 --------------------编程问答-------------------- 也有一种情况,可能是那个字段中填的是word中有垃圾代码。 --------------------编程问答-------------------- 100%是SQL语句的错误。。 --------------------编程问答-------------------- ("select top(" + top + ") * from LeaguerInfo where type='" + infoType + "' and showday<getdate() order by date desc", "LeaguerInfo");
改成
("select top " + top + " * from LeaguerInfo where type='" + infoType + "' and showday<getdate() order by date desc", "LeaguerInfo");
应该就可以了 --------------------编程问答-------------------- 你把SQL取出来,放到查询分析器里查一下就知道是哪里的错了 --------------------编程问答--------------------
引用 楼主 w591829168 的回复:
这个问题怎么解决啊?

dap.Fill(ds, "tbName");
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,