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取出来,放到查询分析器里查一下就知道是哪里的错了 --------------------编程问答--------------------
dap.Fill(ds, "tbName");
补充:.NET技术 , ASP.NET