2015-12-08 71 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"); 
相关问题