Winform вновь открывается, если выброшено исключение - PullRequest
0 голосов
/ 30 августа 2011

У меня есть WinForm, который вызывает метод, используя .Net Remoting, на сервере.Метод запрашивает базу данных.Довольно прямо вперед.Проблема заключается в том, что если я закрываю форму во время выполнения этого метода, генерируется исключение, жаловавшееся на то, что он ожидает SqlParameter, который снова открывает форму.Я не хочу повторного открытия формы.

Я не хочу просто подавлять любые выброшенные SqlException, потому что я хочу получать уведомления о возникновении исключения.

Есть ли простой способ обойти это?

StringBuilder sb = new StringBuilder();
sb.Append("SELECT COUNT(*) FROM ")
  .Append(table)
  .Append(" WHERE ")
  .Append(fieldName)
  .Append(" = @Value AND SoftDelete = 0");

SqlCommand cmd = this.m_SqlDBConnPool.GetSqlCommand(sb.ToString());
int count = -1;

lock (cmd)
{
    cmd.Parameters.Clear();
    cmd.Parameters.Add(new SqlParameter("Value", value));
    this.m_SqlDBConnPool.ExecQuery(cmd, new SqlDBConnPool.DataReader<object>(
        delegate(SqlDataReader reader, object o)
        {
            count = reader.GetInt32(0);
            return true;
        }), null);
}

Обратите внимание, что SqlDBConnPool - это класс, который мы написали.

1 Ответ

0 голосов
/ 30 августа 2011

Попытайтесь поместить следующее вокруг вашего кода ...

try
{
    //Your code
}
catch(Exception ex)
{
    //Close the form by your self
    //Send back the error
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...