-
October 9th, 2022, 11:34 PM
#1
How to close & clear the OLEDBConnection on Form()_Load?
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
Code:
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
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|