# Visual C++ & C++ Programming > Managed C++ and C++/CLI >  How to close & clear the OLEDBConnection on Form()_Load?

## MAHEY

Hi,
I am using vs-2015. Managed C++/Cli Windows Forms Applications. I have Form1-MdiContainer & Form2. From Form1_Button_Click() accessing Form2.
In Form2_Load() I have OLEDBConnection. For When I press Form1-Button_Click(),
First time it's working good. Also when I re-click() the same Form1-Button()
the whole application is getting closed. I analysed that when I close the OLEDBConnection, the whole program is also getting closed. And the same code working good in c#. I can't understand my mistakes..! Thanks.

Note:- For First time when I click the Form1-Button no problem it's working good. But for re-click() whole application is getting closed().
Thanks Again


```
My Codes
Form1-MdiContainer()
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
	Form2^ MyStForm = Form2::GetForm(true, this);
	MyStForm->MdiParent = this;
	MyStForm->FormBorderStyle = System::Windows::Forms::FormBorderStyle::None;
	MyStForm->Dock = DockStyle::Fill;
	MyStForm->Show();
}

Form2-Top side
	public ref class Form2 : public System::Windows::Forms::Form
	{
		public: static Form2^ Form2::_instance = nullptr;
		public:	static Form2^ Form2::GetForm(bool IsMDIChild, System::Windows::Forms::Form^ MyInstFrm) {
			if (_instance == nullptr)
				_instance = gcnew Form2();

			if (_instance->IsDisposed)
				_instance = gcnew Form2();

			if (IsMDIChild)
				_instance->MdiParent = MyInstFrm;

			return _instance;
		}
		blah..blah...blah...
         }


Form2-Load()
private: System::Void Form2_Load(System::Object^  sender, System::EventArgs^  e) {
	String^ MyStrConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + MyExcelFile + "; Extended Properties=\"Excel 12.0; HDR=YES; OLE DB Services=-1; \"";
	String^ MyExcelFile="C:\\Students\\Names.xlsx";
	String^ MyExcelSheet = "[Sheet1$]";
	String^ MySQLSelect = "select * from " + MyExcelSheet;
	System::Data::OleDb::OleDbConnection^ Cn1 = nullptr;
	Cn1 = gcnew System::Data::OleDb::OleDbConnection();
	Cn1->ConnectionString = MyStrConn;
	System::Data::OleDb::OleDbCommand^ MyCmd = nullptr;
	MyCmd = gcnew System::Data::OleDb::OleDbCommand();
	MyCmd->CommandText = MySQLSelect;
	MyCmd->Connection = Cn1;
	Cn1->Open();
		System::Data::OleDb::OleDbDataAdapter^ Da1 = gcnew System::Data::OleDb::OleDbDataAdapter(MyCmd);
		Da1->Fill(MyDataTable);
	Cn1->Close(); //????????????????? getting stuck
	if (Cn1 != nullptr){
		MyCmd->Cancel();
	}
	//Cn1->ConnectionString = nullptr;
	//Cn1->ReleaseObjectPool();
	MyCmd = nullptr;
	Cn1 = nullptr;

}
```

Thanks

----------

