System.InvalidCastException: 指定的转换无效

月光下的土豆 2010-10-15 11:03:12
代码如下

public class model{
private string a;
private float b;
public model(string a,float b){
this.a=a;
this.b=b;
}
public string A{

}
public string B{


}
}

DAL


public List<PayMent> GetPayMentBillList(PayMent PayMentInfo)
{
List<PayMent> GetBillList = new List<PayMent>();
PayMent pm ;
using (SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringProfile, CommandType.StoredProcedure, GetPayMentBillListSqName, para)) {
while (dr.Read()) {
pm = new PayMent(dr.GetString(0), dr.GetFloat(2));
GetBillList.Add(pm);
}
}
return GetBillList;
}

这是什么问题啊.private float b; 改成string
pm = new PayMent(dr.GetString(0), dr.GetString(2));
就没有问题

...全文
176 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
vip__888 2010-10-15
  • 打赏
  • 举报
回复
类型不一致
wuyq11 2010-10-15
  • 打赏
  • 举报
回复
public float B{

}
pm = new PayMent(dr.GetString(0), dr.GetFloat(2));
dr[0]==DBNull.Value?0:dr.GetFloat(2);
可空类型 float? B
月光下的土豆 2010-10-15
  • 打赏
  • 举报
回复
上几楼字的问题不存在.
是发帖说明问题的时候没来及改
porschev 2010-10-15
  • 打赏
  • 举报
回复
看看。。。
kkbac 2010-10-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 taomanman 的回复:]

public class model{
private string a;
private float b;
public model(string a,float b){
this.a=a;
this.b=b;
}
public string A{

}
public float B{
//里面内容根据需要进行修改
}
}
修改红色部分及其包含的内容即可。

……
[/Quote]

+++
暖枫无敌 2010-10-15
  • 打赏
  • 举报
回复
public class model{
private string a;
private float b;
public model(string a,float b){
this.a=a;
this.b=b;
}
public string A{

}
public float B{
//里面内容根据需要进行修改
}
}
修改红色部分及其包含的内容即可。

暖枫无敌 2010-10-15
  • 打赏
  • 举报
回复
public List<PayMent> GetPayMentBillList(PayMent PayMentInfo)
{
List<PayMent> GetBillList = new List<PayMent>();
PayMent pm ;
using (SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringProfile, CommandType.StoredProcedure, GetPayMentBillListSqName, para)) {
while (dr.Read()) {
pm = new PayMent(dr.GetString(0), dr.GetFloat(2));
GetBillList.Add(pm);
}
}
return GetBillList;
}
红色部分,你GetFloat的了,可是前面定义的属性呢,一会是float,一会是string,发现错误所在了吧,太粗心了你呀。


暖枫无敌 2010-10-15
  • 打赏
  • 举报
回复
很显然是粗心造成的。
public class model{
private string a;
private float b;
public model(string a,float b){
this.a=a;
this.b=b;
}
public string A{

}
public string B{


}
}
看见没,红色部分,完全不一致。
类型转换错误。

wubudang 2010-10-15
  • 打赏
  • 举报
回复
多数可能是dr中的值为空,你调试看看就知道了。
月光下的土豆 2010-10-15
  • 打赏
  • 举报
回复
float 改成Double 就OK了

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧