我正在编写一个代码,用于从数据库中选择数据,将其存储在DataTable中,执行一些硬数学运算,然后更新数据库.
主要问题是由于DataRow集合返回列作为对象类型,它需要大量的转换,迫使我每行执行float.parse()并使其耗时.
你们有什么建议我可以避免这种情况吗?
提前致谢.
float.Parse
是不一样的铸件.您应该能够实际投射该值,例如
(float) row["Foo"]
(double) row["Foo"]
(decimal) row["Foo"]
Run Code Online (Sandbox Code Playgroud)
取决于类型.这将避免做任何解析 - 你只是拆箱.如果值不是您想要的类型,则可能需要取消装箱并进行转换,例如
(float) (double) row["Foo"]
Run Code Online (Sandbox Code Playgroud)
目前还不清楚你是如何使用它的DataTable
,但我建议创建你自己的模型类,它以强类型的方式表示一行表,转换为往返DataRow
- 或者使用强类型DataSet
来开始.这样,你的代码将是一个很多更清晰,你只需要执行转换为代码的一小部分.