首页 新闻 会员 周边

某列不属于表Table的问题,请路过的朋友帮忙

0
悬赏园豆:20 [已关闭问题]

遇到个棘手的问题,在功能中数据层有个方法是返回一个泛型的方法,发布后在IIS中测试,调用10多次都没有问题,过后就出现这个问题,感觉极为不稳定,然后这个方法一直过不去,要重启IIS才行,而在VS工具中测试从来不报错,报错信息如下:
异常详细信息: System.ArgumentException: 列“Props_TypeName”不属于表 Table。

SQL语句中Props_TypeName,Pi_SmallImg字段都是动态构建的,本身不属于Idol_PropsPurchases这个表,我以前试过用SqlDataReader来读取也报类似错误.所以
改为DataTable来操作。

我把这个方法贴出来。

public static List<Idol_PropsPurchases> GetPropsBagInfo(int BagId, int Idol_Id)
{
List
<Idol_PropsPurchases> Lipp = new List<Idol_PropsPurchases>();
string Sql = "select (select dbo.Props_GetParentName(Pt_Id) from Props_Info where Pi_Id = Ipp.Pi_Id) as Props_TypeName,(select Pi_SmallImg from Props_Info where Pi_Id = Ipp.Pi_Id) as Pi_SmallImg,* from Idol_PropsPurchases Ipp where datediff(s,convert(varchar(20),getdate(),120),Ipp_EndTime)>0 and Ipp_IsUse = 0 and Bag_Id="+BagId+" and Idol_Id="+Idol_Id+"";
SqlConnection con
= new SqlConnection(ConfigurationManager.ConnectionStrings["MemberDBCS"].ConnectionString);
con.Open();
SqlDataAdapter Sda
= new SqlDataAdapter(Sql, con);
DataSet Ds
= new DataSet();//;SqlHelper.GetDataTable(Sql)
Sda.Fill(Ds);
DataTable Dt
= Ds.Tables[0];
con.Close();
if (Dt.Rows.Count != 0)
{
foreach (DataRow Row in Dt.Rows)
{
Idol_PropsPurchases Ipp
= new Idol_PropsPurchases();
Ipp.Props_TypeName
= Row["Props_TypeName"].ToString();
Ipp.Pi_SmallImg
= Row["Pi_SmallImg"].ToString();
Ipp.Pi_Id
= int.Parse(Row["Pi_Id"].ToString());
Ipp.Ipp_AccumulationCount
= int.Parse(Row["Ipp_AccumulationCount"].ToString());
Ipp.Ipp_PositionNum
= int.Parse(Row["Ipp_PositionNum"].ToString());
Ipp.Ipp_IsProps
= bool.Parse(Row["Ipp_IsProps"].ToString());
Lipp.Add(Ipp);
}
}


return Lipp;
}


 

张杨的田园的主页 张杨的田园 | 初学一级 | 园豆:180
提问于:2010-01-15 11:01
< >
分享
其他回答(2)
0

在出现错误的时候看看这个时候的数据对不对,然后本机用这个数据调试看看。

清海扬波 | 园豆:825 (小虾三级) | 2010-01-15 15:39
-1

跟踪调试一下啊 sql 语句,看看是否正确

Mr雨 | 园豆:1199 (小虾三级) | 2010-01-15 15:46
0

建议不使用动态构建字段看看,直接在表里添加上这个字段。

Jackey_shao | 园豆:225 (菜鸟二级) | 2010-01-15 17:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册