2014-01-22 109 views
0

我有我的數據庫中的表存儲在SQL Server 2012中,並通過此表迭代並添加新的對象在我的綁定列表中。然後將此列表設置爲我的DataGridView的數據源。與綁定列表綁定的DataGridView顯示空行

據我所知,DataGridView應該創建列並用數據填充行,但是當我運行構建時,我只能看到空行。他們的計數與表格中的行數相匹配,我也用斷點調試,所以我確定我真的有我的數據源充滿數據,但我無法找出這些空白行。

這是方法我使用用於創建數據集和填充綁定列表

public void selectCars() 
{ 
    string connString = @"Data Source=POHJOLA\SQLEXPRESS;Initial Catalog=BlueCars;Integrated Security=True"; 

    using (SqlConnection connection = new SqlConnection(connString)) 
    { 
     connection.Open(); 
     string query = "SELECT * FROM Car ORDER BY CarID ASC"; 
     SqlCommand command = new SqlCommand(query, connection); 

     using (SqlDataAdapter adapter = new SqlDataAdapter(command)) 
     using (DataSet result = new DataSet()) 
     { 
      adapter.Fill(result); 

      foreach (DataRow row in result.Tables[0].Rows) 
      { 
       carsList.Add(new Car(Convert.ToInt32(row[0]), row[1].ToString(), row[2].ToString(), row[3].ToString(), Convert.ToDecimal(row[4]),Convert.ToInt32(row[5]),row[6].ToString(),row[7].ToString())); 
      } 
     } 
    } 
} 

這是我的初始化

public managerCarForm() 
{ 
    InitializeComponent(); 
    selectCars(); 
    carsGrid.DataSource = carsList; 
} 

而且我也許應該補充一點,我創建的列在設計師和集手動datanameproperty參數的車類

我沒有得到任何異常或錯誤在這裏..

非常感謝!

+0

你有沒有得到解決這個?我也有一個DataGridView讀取我的數據源(斷點確認數據在那裏),它創建正確的列和正確的行數,但它們都是空白的。想知道你是否知道爲什麼。我的是Windows Form,所以沒有DataBinding()語句。 – Tanoshimi

回答

0
   foreach (DataRow row in result.Tables[0].Rows) 
        { 
         carsList.Add(new Car(Convert.ToInt32(row[0]), row[1].ToString(), row[2].ToString(), row[3].ToString(), Convert.ToDecimal(row[4]),Convert.ToInt32(row[5]),row[6].ToString(),row[7].ToString())); 
        } 

請通過在foreach循環後應用斷點來檢查您的carList,以驗證它至少包含單個數據行。並檢查您的查詢。

如果您的應用程序是一個ASP.NET 嘗試修改如下代碼..

public managerCarForm() 
{ 
    InitializeComponent(); 
    selectCars(); 
    carsGrid.DataSource = carsList; 
    carsGrid.Databind(); 

} 
+0

是的,我有兩個表中的行和兩個記錄在我的綁定列表中。 – Mythago

+0

如果這是一個ASP.NET窗體.. carsGrid.DataSource = carsList; 在上面的行後面添加此行 carsGrid.Databind(); – tarzanbappa

+0

這是Windows窗體 - Databind()不在我的上下文中 – Mythago