如果抛出异常,Winform重新打开

时间:2011-08-30 12:09:10

标签: c# .net winforms exception exception-handling

我有一个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 :(得分:0)

尝试在代码周围加上以下内容......

try
{
    //Your code
}
catch(Exception ex)
{
    //Close the form by your self
    //Send back the error
}