ce.credits = Convert.ToSingle((reader.Read["credits"]));
这个是正解,但是float是有精度的,也就是1.0 可能读取出来是 1.00000000001 什么的,如果对精度有很大的要求,可以Convert.ToDecimal()这个方法
reader[“colname”]出来应是object类型,parse接受的应该是string类型的参数把,不记得parse有object参数的重载了。
如果是这样的话,你ToString()一下不就完了吗?
你可以通过.GetType() 输出下他本身的类型,如果数据库本来就是decimal类型的话你只要 as decimal就可以了