簡體   English   中英

C#中類型轉換為SQL數據

[英]Type conversion in C# for SQL data

我有一個從DataTable數據庫填充的數據表。 值返回為 object 類型( Calculate function 也出於某種原因返回 object),因此我需要將它們轉換為正確的類型。 它使代碼變得如此復雜。

像這樣:

 double value;

 foreach (DataRow row in sampleDataTable.Rows)
 {
     value +=  (double)Global.Calculate(Convert.ToDouble(Global.dbNullCheck(row["value1"], 0)) / Convert.ToDouble(row["value2"]), 2);
 }

我可以將上面的代碼寫成:

 double sum;
 double value1;
 double value2;

 foreach (DataRow row in sampleDataTable.Rows)
 {
     value1 = Convert.ToDouble(Global.dbNullCheck(row["value1"], 0);
     value2 = Convert.ToDouble(row["value2"]);
     sum +=  (double)Global.Calculate(value1 / value2, 2);
 }

但是,當然,它仍然不清楚,我做錯了什么。 我需要檢查所有值是否為DBNull ,然后我需要轉換它們。 有什么想法可以改進這種類型的代碼嗎? 一切都圍繞着我的代碼:)

SQL數據有沒有好的處理方式?

不要考慮“轉換”。 這些對象已經是你想要的類型; 只是 ADO.Net 庫無法提前知道使用什么類型。 因此,您需要一個轉換,而不是一個相對較慢的轉換

此外,一般來說,您最初不希望根據各個列來考慮。 相反,定義一個class object 來表示每一行。 然后創建一個 function 接受一個DataRow作為參數,並返回這個新的 class 的一個實例作為結果。 這個 function需要知道如何處理各個列,但更大的foreach循環(或類似循環)應該只是調用這個 function。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM