我们有一个兼容Oracle和MsSql dbs的应用程序。 LocationId字段在MsSql db中为<int>
,在Oracle db中为<number(10,0)>
。当我将代码中的locationId转换为Int32
时,它适用于MsSql环境并在Oracle中引发异常。当我将其转换为Int64
时,它适用于Oracle并抛出&#34;无效的转换异常&#34;在MsSql环境中我知道我可以处理这件事。但我想知道是否有更好的方法来通过转换另一种可以处理这两种问题的类型来克服这个问题。任何建议表示赞赏。 THX。
IEnumerable<DataRow> dataTableByLoc =
from rowsByLoc in dTable.AsEnumerable()
where rowsByLoc.Field<Int32>("locationID") == nextLocInfo.getLocationId()
select rowsByLoc;
ERROR:
16-02-2017 15:24:06 ERROR [MFES.Log] Error running export at System.Data.DataRowExtensions.UnboxT`1.ValueField(Object value)
at MFES.Plugins.GYG.DailyExports.GYGDailyExportMain.<>c__DisplayClass15_0.<exportTableByLocation>b__0(DataRow rowsByLocation)
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()