/// <summary>
/// 根据id获得对应栏目的子栏目 3-25
/// </summary>
/// <param name="FatherId">一级栏目</param>
/// <returns>子栏目泛型类</returns>
public static IList<Class> ChannelList(int FatherId)
{
IList<Class> ILClass = new List<Class>();
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@Class_farther",FatherId),
};
DataSet ds = DBHelper.GetDataSet("[Proc_GetChannelInfoById]","Tb_Class",para); foreach (DataRow row in ds.Tables[0].Rows)
{
Class Channel = new Class();
Channel.SClass_name = Convert.ToString(row["Class_name"]);
Channel.NAdmin_id = Convert.ToInt32(row["Admin_id"]);
Channel.NClass_id = Convert.ToInt32(row["Class_id"]);
Channel.NClass_farther = Convert.ToInt32(row["Class_farther"]);
ILClass.Add(Channel);
}
return ILClass;
}
出现错误在应使用条件的上下文(在 'Class_farther' 附近)中指定了非布尔类型的表达式。
/// 根据id获得对应栏目的子栏目 3-25
/// </summary>
/// <param name="FatherId">一级栏目</param>
/// <returns>子栏目泛型类</returns>
public static IList<Class> ChannelList(int FatherId)
{
IList<Class> ILClass = new List<Class>();
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@Class_farther",FatherId),
};
DataSet ds = DBHelper.GetDataSet("[Proc_GetChannelInfoById]","Tb_Class",para); foreach (DataRow row in ds.Tables[0].Rows)
{
Class Channel = new Class();
Channel.SClass_name = Convert.ToString(row["Class_name"]);
Channel.NAdmin_id = Convert.ToInt32(row["Admin_id"]);
Channel.NClass_id = Convert.ToInt32(row["Class_id"]);
Channel.NClass_farther = Convert.ToInt32(row["Class_farther"]);
ILClass.Add(Channel);
}
return ILClass;
}
出现错误在应使用条件的上下文(在 'Class_farther' 附近)中指定了非布尔类型的表达式。
(int)row["Admin_id"];
检查 == 是否写成了 =
Create proc [dbo].[Proc_GetChannelInfoById]
(
@Class_farther int
)as
declare @FID nvarchar(10),@sql nvarchar(50)
set @FID=convert(nvarchar(10),@Class_farther)
set @sql='select * from A where 1=1 '
if @FID>0
begin
set @sql=@sql+'and Class_farther='+@FID+'order by News_time desc '
end
print @sql /*==========测试=========*/
exec sp_executesql @sql
go
set @sql=@sql+'and Class_farther='+@FID+'order by News_time desc '这里Class_farther='+@FID+'与order 中间怎么没有空格
set @sql=@sql+'and Class_farther='+@FID+' order by News_time desc '
nvarchar型也不能这么比较,可以len(@FID)>0
可是不是已经转化了吗set @FID=convert(nvarchar(10),@Class_farther)
现在报错是说 DataSet ds = DBHelper.GetDataSet("[Proc_GetChannelInfoById]","Tb_Class",para);
等号附近有语法错误
转来转去还是转成nvarchar型啊~
convert(你的目标类型,变量)
if @FID>0
nvarchar型也不能这么比较,可以len(@FID)>0
可是不是已经转化了吗
SQL code
set @FID=convert(nvarchar(10),@Class_farther)类型不对。。int 与 nvarchar 不能直接加的。
你print 也是print 不出来的,我觉得建立存储过程的时候应该也会错吧