“System.InvalidCastException”类型的未经处理的异常在 mscorlib.dll 中发生
其他信息: 无法将类型为“System.Data.DataRow”的对象强制转换为类型“System.IConvertible”。
查了好多,都没解决,正在做毕设,时间紧迫,便来求助各位朋友! 代码如下:
[align=left] //连接数据库
string strcon = @"Server=.;DataBase=jiafayunsuan;Integrated Security=SSPI";
SqlConnection sqlcon = new SqlConnection(strcon);
string strselect = @"Select * from shuju";
SqlCommand sqlcmd = new SqlCommand(strselect,sqlcon);
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter(strselect,sqlcon); //数据中转接口
sqlcon.Open();
//数据库数据转入dataset的datatable中,并存至数组中
sda.Fill(ds,"shuju"); //当一次填充多个表时,Fill()内应为(ds,"表名") 即给dataset中设置一个名为shuju的表(datatable)
double[] addend = new double[ds.Tables["shuju"].Rows.Count]; //[]内表示表[shuju]中的行数,即令一维数组元素等于行数
for (int i = 0; i < ds.Tables["shuju"].Rows.Count; i++) //Tables为dataset的属性成员,表示其中的表的集合
{
addend[i] = Convert.ToDouble(ds.Tables["shuju"].Rows[i]);
}[/align]
7 个解决方案
#1
断点调试下,看下ds.Tables["shuju"].Rows[i]的值
#2
红色部分改成addend[i] = Convert.ToDouble(ds.Tables["shuju"].Rows[i]["你的列名"]);
#3
float Fvar = ds.Tables["shuju"].Rows[i]["price"];
addend[i] = Convert.ToDouble(Fvar );
addend[i] = Convert.ToDouble(Fvar );
#4
少了一个列定位
#5
ds.Tables["shuju"].Rows[i] 返回的是个datarow对象,不是一个值啊,哥们!
#6
ds.Tables["shuju"].Rows[i]
[j]
低级错误
低级错误
#7
谢谢楼上的各位,问题已解决,可能等级太低,没法给楼层回复,谢谢啦~
#1
断点调试下,看下ds.Tables["shuju"].Rows[i]的值
#2
红色部分改成addend[i] = Convert.ToDouble(ds.Tables["shuju"].Rows[i]["你的列名"]);
#3
float Fvar = ds.Tables["shuju"].Rows[i]["price"];
addend[i] = Convert.ToDouble(Fvar );
addend[i] = Convert.ToDouble(Fvar );
#4
少了一个列定位
#5
ds.Tables["shuju"].Rows[i] 返回的是个datarow对象,不是一个值啊,哥们!
#6
ds.Tables["shuju"].Rows[i]
[j]
低级错误
低级错误
#7
谢谢楼上的各位,问题已解决,可能等级太低,没法给楼层回复,谢谢啦~