2012-02-06 71 views
1

是否有可能在DataTable中包含int和long值的DataColumn?它應該返回一個int值,如果一個有效的int,否則它應該返回一個long值。DataColumn DataType int和long

對於一些背景爲什麼我想實現這一點,我已經發布了一個創建類型爲int的DataColumn的產品,但它應該從一開始就很長。現在我不想破壞將值明確地轉換爲int的現有項目,但我希望允許列中的長整型值。

是否有一個事件,我可以在DataTable上訂閱將該值轉換爲int?

以下代碼應正確執行。

 DataTable dataTable = new DataTable(); 
     dataTable.Columns.Add("IntAndLong", typeof(long)); 

     DataRow intRow = dataTable.NewRow(); 
     intRow[0] = 123; 
     dataTable.Rows.Add(intRow); 

     DataRow longRow = dataTable.NewRow(); 
     longRow[0] = 3000000000; 
     dataTable.Rows.Add(longRow); 

     long longValue = (long)dataTable.Rows[1][0]; 
     int intValue = (int)dataTable.Rows[0][0]; 

回答

1

我建議在相當長的類型變量收集的DataColumn值,檢查其值小於int.MaxValue,比int.MinValue大,然後將其轉換爲int變量,如果你需要它。

+0

支票應該在哪裏完成?這可能是我無法訪問的現有代碼,因此這行代碼必須繼續工作。 int intValue =(int)dataTable.Rows [0] [0]; – Jannes 2012-02-06 09:49:45

+0

int intVal =(longVal Raj 2012-02-08 14:00:10

+0

謝謝你幫助拉吉。我不認爲有這個問題的解決方案。代碼必須改變才能將其明確地轉換爲長整型。 – Jannes 2012-02-09 13:49:17