首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Access 資料庫欄位為 Null 導致程式中斷:設定非空與預設值解決方案

     編輯:程式設計疑難解答

錯誤現象

讀取 Access 表時,字串欄位為 Null 導致 C#/VB 程式拋出 InvalidCastException 或 NullReferenceException。

根因

Access 允許文字欄位存 Null,但程式端變數(如 string)不可為 null(或未做判斷)。

解決方案(按推薦順序)

  1. 資料庫層面:設定欄位非空 + 預設值
    設計檢視 → 欄位 Required = Yes、Default Value = ""(空字串)。現有 Null 需先更新:
    UPDATE TableName SET FieldName = '' WHERE FieldName IS NULL;
  2. 程式碼層面:安全讀取
    C#:
    string val = reader["FieldName"] as string ?? "";
    VB.NET:
    Dim val As String = If(reader.IsDBNull(ordinal), "", reader.GetString(ordinal))
  3. 查詢層面:ISNULL/COALESCE
    SELECT ISNULL(FieldName, '') AS FieldName FROM TableName (Access 用 Nz(FieldName, ''))。

最佳實踐

**源頭治理**:資料庫定義階段即設 NOT NULL DEFAULT '',消除後續所有判空麻煩。

錯誤截圖
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved