连接未关闭连接';s的当前状态为打开c#

连接未关闭连接';s的当前状态为打开c#,c#,database,ms-access,C#,Database,Ms Access,当我在计时器中调用这个函数时,它总是告诉我 连接未关闭连接的当前状态为打开 需要帮忙吗 public static void Notify(string source, string query, ref OleDbConnection connection) { OleDbCommand command = new OleDbCommand(query, connection); try { connect

当我在计时器中调用这个函数时,它总是告诉我 连接未关闭连接的当前状态为打开

需要帮忙吗

    public static void Notify(string source, string query, ref OleDbConnection connection)
    {
        OleDbCommand command = new OleDbCommand(query, connection);
        try
        {
            connection.Open();
            OleDbDataReader reader = command.ExecuteReader();

            while (reader.Read())
            {
                DateTime date = DateTime.Parse(reader[0].ToString());
                if (date.ToShortDateString() == DateTime.Now.ToShortDateString())
                {
                    DateTime time = DateTime.Parse(reader[1].ToString());
                    if (time.ToShortTimeString() ==DateTime.Now.ToShortTimeString())
                    {
                        string notification = source + " You have " + reader[2].ToString() + " at " + (time.ToLongTimeString()).ToString();

                        MessageBox.Show(notification, "Reminder", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    }
                }
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        finally
        {
            connection.Close();
        }
    }

正如消息所说,您的连接已经打开。这意味着你已经打过电话了

connection.Open();

在呼叫“通知”之前的某个地方。检查您的代码,看看是否是这种情况。希望有帮助。

正如消息所说,您的连接已经打开。这意味着你已经打过电话了

connection.Open();

在呼叫“通知”之前的某个地方。检查您的代码,看看是否是这种情况。希望有帮助。

在哪一行?您是否在其他地方使用该连接?您将其作为ref参数提供,因此可能这不是您唯一一次使用它?您没有检查连接是否已处于打开状态,再次打开它会导致此错误您也没有处理reader对象或command对象,这两个对象都实现了
IDisposable
。您的连接不需要
ref
,您没有替换连接对象。在哪一行?您在其他任何地方使用连接吗?您将其作为ref参数提供,因此可能这不是您唯一一次使用它?您没有检查连接是否已处于打开状态,再次打开它会导致此错误您也没有处理reader对象或command对象,这两个对象都实现了
IDisposable
。您的连接不需要
ref
,您没有替换connection object.guys,,此函数只执行一次,然后转到Exception以调试代码。在调用connection.Open()的行上设置一个断点,看看会发生什么。如果系统在到达这一行时显示错误,这意味着连接已经打开,正如我前面提到的。如果您需要有关它的更多信息,请告诉我,伙计们,此函数执行一次,然后转到异常以调试您的代码。在调用connection.Open()的行上设置一个断点,看看会发生什么。如果系统在到达这一行时显示错误,这意味着连接已经打开,正如我前面提到的。如果你需要更多的信息,请告诉我