for (int j = 0; j < ds1.Tables[0].Rows.Count; j++)
            for (int i = 0; i < ds1.Tables[0].Columns.Count; i++)
            {
                p[j, i] = (Double)ds1.Tables[0].Rows[j][i];//(这个地方出现错误!!!)
            }
出现的错误是:指定的转换无效。
其中数据库里表的大小事19*30的一个表。但是ds1.Tables[0].Columns.Count编译时的值是29????是什么问题呢????
望大侠们指教!!!!

解决方案 »

  1.   

    第一个问题 指定的转换无效:ds1.Tables[0].Rows[j][i] 返回值是一个 object,如果要转化为double,需要强制类型转换,强制类型转换 你知道的吧。
    第二个问题 ds1.Tables[0].Columns.Count 编译的时候是29 是正确的,应为它的索引时从0开始的 0-29共30个不知道这么说 你明白吗
      

  2.   

    看看ds1.Tables[0].Rows[j][i]的值是什么,是否可以转换
      

  3.   

    (Double)ds1.Tables[0].Rows[j][i].toString();
    先转化为字符串再转为double型用Convert.toDuble(ds1.Tables[0].Rows[j][i].toString());
    也行!
      

  4.   

    正解 
    double d = double.Parse(ds1.Tables[0].Rows[j][i].ToString());亦可