C 判斷dataset資料集字段為NULL或為空

2022-07-13 15:51:12 字數 928 閱讀 3184

今天遇到乙個奇怪問題,執行下邊的**,在一些特殊情況下會,報錯:異常資訊:輸入字串的格式不正確。

不知道什麼原因dt.rows[i]["sumpages"]

欄位為null時, dt.rows[i]["sumpages"].tostring() == null的值還是false,因此會接著執行convert.toint32(dt.rows[i]["sumpages"].tostring())這句**,因此會報錯。

也許該條記錄的dt.rows[i]["sumpages"]欄位並不為null,只是看著像null而已,所以才會出現這種情況。也許欄位裡是空的字串。

將判斷字段是否為空的語句改成下邊的**,就不會再有問題

sumpages=string.isnullorempty(dt.rows[i]["sumpages"].tostring()) ? 0 : convert.toint32(dt.rows[i]["sumpages"].tostring());

或者sumpages= dt.rows[i]["sumpages"] == dbnull.value ? 0 : convert.toint32(dt.rows[i]["sumpages"].tostring());

再或者改查詢sql語句

select nvl(sum(filed1),0) as sumpages from tabletest  

C 之資料集 DataSet物件

ado.net資料訪問技術的乙個突出的特點就是支援離線訪問,而實現這種離線訪問技術的核心就是dataset物件,該物件通過將資料駐留在記憶體來實現離線訪問。dataset物件概述 dataset物件由一組datatable物件組成,這些物件與datarelation物件互相關聯。這些dataset物...

C 操作Dataset資料集與SQLite資料庫

近日有需要寫點c 程式,有用到dataset資料集和sqlite資料庫,由於我從來就不擅長記各種程式語言的語法,所以在查閱一堆資料後,留下以下內容備忘 一 sqlite操作,直接貼 很簡單 建立乙個資料庫檔案 string test.db system.data.sqlite.sqliteconne...

c 使用redis 訪問dataset資料集

1.下面是關於c 使用redis資料庫 對dataset進行訪問操作的方法using servicestack.redis using system using system.collections.generic using system.configuration using system.da...