已经实现了一个userdata.dll组件,实现与数据库的连接
要实现从一个表中读取一列,并取得该列的值的总和.
程序如下:
其中FPara.connStr就是组件中的数据库连接字符串
SqlCommand mycom=FPara.connStr.CreateCommand();
mycom.CommandText="select TotalMoney from D_J110 ";
SqlDataReader pricer=mycom.ExecuteReader();
int TotalMoneyColPos=pricer.GetOrdinal("TotalMoney");
System.Console.WriteLine(TotalMoneyColPos);
float total=0;
while(pricer.Read())
{
float totalvalue=pricer.GetFloat (TotalMoneyColPos); //提示在这一行出错误
total=total+totalvalue;
}
System.Console.WriteLine(total);
错误提示:
未处理的“System.InvalidCastException”类型的异常出现在 system.data.dll 中。其他信息: 指定的转换无效。各位请帮忙看下
要实现从一个表中读取一列,并取得该列的值的总和.
程序如下:
其中FPara.connStr就是组件中的数据库连接字符串
SqlCommand mycom=FPara.connStr.CreateCommand();
mycom.CommandText="select TotalMoney from D_J110 ";
SqlDataReader pricer=mycom.ExecuteReader();
int TotalMoneyColPos=pricer.GetOrdinal("TotalMoney");
System.Console.WriteLine(TotalMoneyColPos);
float total=0;
while(pricer.Read())
{
float totalvalue=pricer.GetFloat (TotalMoneyColPos); //提示在这一行出错误
total=total+totalvalue;
}
System.Console.WriteLine(total);
错误提示:
未处理的“System.InvalidCastException”类型的异常出现在 system.data.dll 中。其他信息: 指定的转换无效。各位请帮忙看下
例如:
pricer.GetFloat(0);
另外如果输出一下会发现全是0,这是为什么
就是先去掉float totalvalue=pricer.GetFloat (TotalMoneyColPos);
只是输出TotalMoneyColPos
把float totalvalue=pricer.GetFloat (TotalMoneyColPos);
改成float totalvalue=pricer["TotalMoney"];
这样就可以了
但是对于上面的问题仍然是不明白啊