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

C# Linq to SQL DataGridView綁定數據顯示異常:需提供代碼與截圖定位問題

     編輯:程式設計綜合問答

現象

DataGridView綁定Linq查詢結果,表格結構顯示但數據只有選中行可見,未選中行空白。

常見原因排查清單

  1. AutoGenerateColumns:設置dataGridView1.AutoGenerateColumns = true(默認)。若為false需手動定義列。
  2. 數據源類型:綁定List<T>或BindingList<T>,而非IQueryable(需.ToList()實例化)。
  3. 屬性訪問器:實體類字段必須有public get/set屬性,字段直接綁定無效。
  4. 只讀/可見屬性:檢查列ReadOnly、Visible、DefaultCellStyle(如前景色=背景色導致不可見)。
  5. 數據上下文生命周期:DataContext過早Dispose導致延遲加載失敗 → 在綁定前調用.ToList()斷開上下文。

最小可復現示例

using (var db = new MyDataContext()) {
    var list = db.Users.Select(u => new { u.Id, u.Name }).ToList(); // 關鍵:ToList()
    dataGridView1.DataSource = list;
    dataGridView1.AutoGenerateColumns = true;
}

調試步驟

  1. 斷點查看list實際內容是否為空。
  2. 輸出dataGridView1.Rows.Count與Columns.Count。
  3. 檢查CellFormatting事件是否誤設置e.Value = null。
  4. 提供完整綁定代碼、實體類定義、運行截圖(含行選中/未選中狀態)以獲取精準幫助。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved