2015-12-08 21 views
1

當我在我的機器上運行我的程序時,它的工作原理完全正常,但是當我從其他機器運行代碼時,出現「無法綁定新顯示成員」的錯誤消息?我只是不明白爲什麼?這是我的代碼。無法綁定在一個新的顯示成員組合框c#

private DataTable effectivity, filesTable, cgmFiles; 

    private void FillEffectivity() 
    { 
     cbEffectivity.ComboBox.DataSource = null; 
     effectivity = FillDataTable("SELECT * FROM Projects ORDER BY Project ASC"); 
     cbEffectivity.ComboBox.DataSource = effectivity; 
     cbEffectivity.ComboBox.DisplayMember = "project"; 
     cbEffectivity.ComboBox.ValueMember = "RecNo"; 
    } 

    private DataTable FillTable(string sql) 
    {      
     DataTable table = new DataTable(); 
     try 
     { 
      using (OleDbDataAdapter da = new OleDbDataAdapter(sql, cn)) 
      { 
       da.Fill(table); 
      } 
     } 
     catch (Exception ex) 
     { 
      if (ex.Message == "Not a valid password.") 
      { 
       SetPassword(); 
       return FillTable(sql); 
      } 
      return new DataTable(); 
     } 
     finally 
     { 
      cn.Close(); 
     } 
     return table; 
    } 
+0

很可能其他機器正在'返回新的DataTable();'線。這是非常糟糕的編碼習慣,因爲你隱藏了實際的問題。用'throw;'替換那行,看看會發生什麼。 –

回答

0

這似乎是在查詢的問題,而不是effectivity = FillDataTable("SELECT * FROM Projects ORDER BY Project ASC");嘗試FillDataTable("SELECT * FROM Projects ORDER BY project ASC");

也建議不使用*而選擇它將於性能的影響。 試試這個

FillDataTable("SELECT project FROM Projects ORDER BY project ASC"); 
相關問題