C# button1_Click(sender, e);出现死循环点确定

来源:百度知道 编辑:UC知道 时间:2024/05/21 21:02:33
private void frmMain_Load(object sender, EventArgs e)
{
//加载所有的服务器名称
getSQLServer();
cbbSqlServerName.SelectedIndex = 0;

}
private void getSQLServer()
{
SQLDMO.Application SQLServer = new SQLDMO.Application();
SQLDMO.NameList strServerList = SQLServer.ListAvailableSQLServers();

if (strServerList.Count > 0)
{
for (int i = 0; i < strServerList.Count; i++)
{
cbbSqlServerName.Items.Add(strServerList.Item(i+1));
}
}
}
private void button1_Click(object sender, EventArgs e)
{
try
{
cbbSqlData.Items.Clear();
SqlConnection conn = new SqlConnection("Persist Security Inf

catch
{
button1_Click(sender, e);
}
就是这里错了,只要不成功就调用自己,还不成功就调用自己,一直下去.....

for (int i = 0; i < strServerList.Count; i++)
{
cbbSqlServerName.Items.Add(strServerList.Item(i+1));
}
里面的item索引是方括号吧?还有,为什么是i+1呢?不会引起越界的异常吗?
建议在代码的最后添加finally{conn.close();}语句。

前面代码报错,跳到catch块,然后你又

catch
{
button1_Click(sender, e);
}

又执行click事件,又报错,又catch… 于是死循环

TGRTGG