2017-04-12 123 views
0

我一直在尝试不同的方法来解决这个问题,但我还没有找到一个可靠的解决方案来解决我的问题。问题是我必须重新加载表单,以防第一次启动应用程序,并且由于网络或SQL连接问题导致组件未填满。截至目前,每个人都在关闭应用程序并重新开始,因为他们第一次启动应用程序时组件是空的。我需要重新加载窗体上的按钮点击

以下是我正在使用的代码。

private void Reports_Load(object sender, EventArgs e) 
{ 
    //START: 
    try 
    { 
     RevenueDate_dt = func.getResult(dateQuery); 
     foreach (DataRow dr in RevenueDate_dt.Rows) 
     { 
      comboBox1.Items.Add(dr["Global_Period_Month"].ToString()); 
     } 
    } 
    catch (Exception ex) 
    { 
     //goto START; 
     MessageBox.Show("Network is too slow! Please close the application and try again later"); 
    } 
} 

功能:

public DataTable getResult(string query) 
{ 
    //con.Open(); 
    SqlDataAdapter da = new SqlDataAdapter(); 
    DataTable dt = new DataTable(); 
    SqlCommand cmd = new SqlCommand(query, con); 
    cmd.CommandTimeout = 0; 
    da.SelectCommand = cmd; 
    da.Fill(dt); 
    return dt; 
} 

我已经把我的形式重试按钮,如果第一时间的成分中不填充数据,这样每个人都可以使用重试按钮加载组件,而不是关闭整个应用程序并重新开始。

+0

(你的意思“而不是”,而不是“尽管”,即“使每个人都可以使用重试按钮,而不是加载关闭整个应用程序,并重新开始的组成部分”? )...所以,你有一个按钮点击事件处理程序的方法? – criticalfix

+2

我会专注于网络问题,特别是因为这看起来像本地网络。 – LarsTech

+0

@criticalfix是的,而不是...... umm不,我没有按钮点击事件处理程序的方法。 –

回答

1

您可以通过在您的retry button中拨打Reports_Loadevent来填写组件。 Reports_Load将填充您的组件。检查下面的代码。

CODE:

private void retry_Click(object sender, EventArgs e) 
{ 
    Reports_Load(null, null); 
} 
+0

非常感谢你@csharpbd它完美的作品:)第一次它没有填写,但当我用你的代码它的作品:) –

+0

不客气!!!!! – csharpbd

+0

@SohaibAkhtar负载事件是否连线了? – LarsTech