Проверка на открытое соединение оракула - PullRequest
1 голос
/ 08 февраля 2011

я пытаюсь написать простую форму графического интерфейса для отображения, если какие-либо подключения к базе данных, в которых нуждается мое приложение, недоступны

    public void tryConnection(List<String> connections, List<String> databaseNames)
    {
        tableLayoutPanel1.RowCount = connections.Count();
        Label label;
        Label sucOrFail;
        String message = "";

        int row = 0;
        for (int i = 0; i < connections.Count(); i++ )
        {
            try
            {
                label = new Label();
                sucOrFail = new Label();
                label.AutoSize = true;
                sucOrFail.AutoSize = true;
                label.Text = databaseNames[i].ToUpper();
                tableLayoutPanel1.Controls.Add(label, 0, row);
                OracleConnection con = new OracleConnection(connections[i]);
                con.Open();

                message = "Success, You Managed to connect to " + databaseNames[i];
                sucOrFail.Text = message;
                sucOrFail.ForeColor = System.Drawing.Color.LawnGreen;
                tableLayoutPanel1.Controls.Add(sucOrFail, 1, row);
                con.Close();
                row++;
            }
            catch (OracleException e)
            {
                Console.WriteLine("failure");
            }
        }

есть ли в любом случае, я могу изменить это так, чтобы в случае сбоя con.open () он не переходил к улову, потому что когда это происходит, я теряю свое место в цикле и не могу продолжать, как мне нужно.

Например

if (con.open())
{
    message = ......
}
else
{
    message = .....
}

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

Почему бы просто не использовать внутреннюю попытку / зацепку внутри цикла:

 for (int i = 0; i < connections.Count(); i++ )
 {
    try {
      con.Open();
      // connection ok
    }
    catch (OracleException e) {
      // couldn't connect
    }
 }
0 голосов
/ 08 февраля 2011

Вы должны иметь выделенный блок try catch вокруг con.Open ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...