什么';将ODBC十进制数转换为C#int最干净的方法是什么?

什么';将ODBC十进制数转换为C#int最干净的方法是什么?,c#,odbc,C#,Odbc,我正在编写一些通过ODBC连接查询DB2数据库的代码。该值表示员工编号,但它以十进制形式存储在数据库中。有几列是这样的,所以我正在寻找最干净、最安全的方法将值转换为int 我可以尝试dr.GetInt32(colIndex),但我尽量避免使用列序号来最小化混淆。我在dr[“mycl]”上没有看到方法。GetOrdinal() 我可以分两步完成,但我不希望这个方法在转换时变得太长。有什么建议吗?我可以使用dr.GetInt32(dr.GetOrdinal(“MyCol”))还是需要将其框起来?已测

我正在编写一些通过ODBC连接查询DB2数据库的代码。该值表示员工编号,但它以十进制形式存储在数据库中。有几列是这样的,所以我正在寻找最干净、最安全的方法将值转换为int

我可以尝试
dr.GetInt32(colIndex)
,但我尽量避免使用列序号来最小化混淆。我在
dr[“mycl]”上没有看到方法。GetOrdinal()


我可以分两步完成,但我不希望这个方法在转换时变得太长。有什么建议吗?

我可以使用dr.GetInt32(dr.GetOrdinal(“MyCol”))还是需要将其框起来?已测试!我可以使用十进制列执行GetInt32并跳过转换。谢谢,伙计!请记住,不同风格的dbs可能会对按与列定义不匹配的类型检索值做出不同的反应,在许多情况下,它会失败。在这种特殊情况下,db2看起来相当宽松,但保持匹配是一种很好的做法。因此,在我的代码中,执行GetInt32应该更像是一种.NET类型转换,而不是DB2转换。我可以执行dr.GetInt32(dr.GetOrdinal(“mycl”))还是需要将其装箱?测试过了!我可以使用十进制列执行GetInt32并跳过转换。谢谢,伙计!请记住,不同风格的dbs可能会对按与列定义不匹配的类型检索值做出不同的反应,在许多情况下,它会失败。在这种特殊情况下,db2看起来相当宽松,但保持匹配是一种很好的做法。因此,在我的代码中,执行GetInt32应该更像是一种.NET类型转换,而不是DB2转换。我可以执行dr.GetInt32(dr.GetOrdinal(“mycl”))还是需要将其装箱?测试过了!我可以使用十进制列执行GetInt32并跳过转换。谢谢,伙计!请记住,不同风格的dbs可能会对按与列定义不匹配的类型检索值做出不同的反应,在许多情况下,它会失败。在这种特殊情况下,db2看起来相当宽松,但保持匹配是一种很好的做法。因此,在我的代码中,执行GetInt32应该更像是一种.NET类型转换,而不是DB2转换。我可以执行dr.GetInt32(dr.GetOrdinal(“mycl”))还是需要将其装箱?测试过了!我可以使用十进制列执行GetInt32并跳过转换。谢谢,伙计!请记住,不同风格的dbs可能会对按与列定义不匹配的类型检索值做出不同的反应,在许多情况下,它会失败。在这种特殊情况下,db2看起来相当宽松,但保持匹配是一种很好的做法。因此,在我的代码中,执行GetInt32应该更像是一种.NET类型转换,而不是DB2转换。
(int)dr.GetDecimal(dr.GetOrdinal("MyCol"))