发现vs2005严重问题!!!

yaoleshi 2008-06-19 11:35:11
我最近一直在弄报表.

我现在做的一个报表,数据库中表的字段是int,double,varchar.

我在代码中做了数据类型的转换,为什么运行时还报错说:

处理报表时出错。
调用的目标发生了异常。
无法将类型为“System.Double”的对象强制转换为类型“System.String”。


相关代码,在下面:
...全文
136 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
begonia_ref 2008-06-19
  • 打赏
  • 举报
回复
都用sdr.GetString,你数据库里都是什么类型啊?
yaoleshi 2008-06-19
  • 打赏
  • 举报
回复
表里面的字段类型都与上面的实体类型是一样的.

那为高手,可以解决这个问题.
yaoleshi 2008-06-19
  • 打赏
  • 举报
回复

private int _collectorid;
public int CollectorID { get { return this._collectorid; } set { this._collectorid = value; } }

private double _collectData;
public double CollectData { get { return this._collectData; } set { this._collectData = value; } }

private string _collecttime;
public string CollectTime { get { return this._collecttime; } set { this._collecttime = value; } }

private int _oidid;
public int OIDID { get { return this._oidid; } set { this._oidid = value; } }

private int _portid;
public int PortID { get { return this._portid; } set { this._portid = value; } }

private int _device;
public int Device { get { return this._device; } set { this._device = value; } }

private string _meaning;
public string Meaning { get { return this._meaning; } set { this._meaning = value; } }


//Access to the database connection string
private string SqlString = ConfigurationManager.ConnectionStrings["SqlString"].ToString();

public List<CollectDataTime> GetCollectData(string OIDID)
{

string str = "select CollectorID,collectData,CollectTime,OIDID,PortID,DeviceID,CollectOIDInfomation.Meaning from collectdata inner join CollectOIDInfomation on CollectOIDInfomation.ID=Collectdata.OIDID where OIDID=@OIDID";
SqlParameter[] parms=new SqlParameter[1];
parms[0]=new SqlParameter("@OIDID",OIDID);
SqlDataReader sdr = DBUtility.SqlHelper.ExecuteReader(SqlString, CommandType.Text, str,parms);
List<CollectDataTime> list = new List<CollectDataTime>();
while (sdr.Read())
{
CollectDataTime c = new CollectDataTime();
c.CollectorID = Convert.ToInt32(sdr.GetString(0));
c.CollectData = Convert.ToInt32( sdr.GetString(1));
c.CollectTime = ConvertTime(double.Parse(sdr.GetString(2)));
c.OIDID = Convert.ToInt32( sdr.GetString(3));
c.PortID = Convert.ToInt32( sdr.GetString(4));
c.Device = Convert.ToInt32( sdr.GetString(5));
c.Meaning = sdr.GetString(6);
list.Add(c);
}
sdr.Close();
return list;
}
jin225 2008-06-19
  • 打赏
  • 举报
回复
sdr.GetValue(n),ToString()
liyudong123 2008-06-19
  • 打赏
  • 举报
回复
sdr.GetValue(n),ToString()
xq1981 2008-06-19
  • 打赏
  • 举报
回复
都用string,就OK了
大自然D使者 2008-06-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 XBC001 的回复:]
明白了就好!
我来顶顶
[/Quote]
yaoleshi 2008-06-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 begonia_ref 的回复:]
都用sdr.GetString,你数据库里都是什么类型啊?
[/Quote]

经他的提醒,已经改过来!

谢谢各位!
XBC001 2008-06-19
  • 打赏
  • 举报
回复
明白了就好!
我来顶顶
yaoleshi 2008-06-19
  • 打赏
  • 举报
回复
大都是int型
好象明白了

62,046

社区成员

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

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

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

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