[英]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.