Mega Code Archive

 
Categories / Visual C++ .NET / ADO Database
 

Maintain the table of Authors

using namespace System;   using namespace System::ComponentModel;   using namespace System::Collections;   using namespace System::Windows::Forms;     using namespace System::Data;     using namespace System::Data::SqlClient;   using namespace System::Drawing;     using namespace System::Configuration;   public ref class Form1 : public System::Windows::Forms::Form   {   public:     Form1(void)     {       InitializeComponent();       SqlConnection ^connect = gcnew SqlConnection();             connect->ConnectionString =              ConfigurationManager::ConnectionStrings["SQLConnection"]->ConnectionString;             dAdapt = gcnew SqlDataAdapter();             dAdapt->MissingSchemaAction = MissingSchemaAction::AddWithKey;                         dAdapt->SelectCommand = gcnew SqlCommand("SELECT AuthorID, LastName, FirstName FROM Authors", connect);                          dAdapt->InsertCommand = gcnew SqlCommand("INSERT INTO Authors (LastName, FirstName)VALUES (@LastName, @FirstName)", connect);             dAdapt->InsertCommand->Parameters->Add("@LastName", SqlDbType::VarChar, 50, "LastName");             dAdapt->InsertCommand->Parameters->Add("@FirstName", SqlDbType::VarChar, 50, "FirstName");                                    dAdapt->UpdateCommand = gcnew SqlCommand("UPDATE Authors SET LastName = @LastName, FirstName = @FirstName "                                                     "WHERE AuthorID = @AuthorID", connect);             dAdapt->UpdateCommand->Parameters->Add("@LastName", SqlDbType::VarChar, 50, "LastName");             dAdapt->UpdateCommand->Parameters->Add("@FirstName", SqlDbType::VarChar, 50, "FirstName");             dAdapt->UpdateCommand->Parameters->Add("@AuthorID", SqlDbType::Int, 4, "AuthorID");                          dAdapt->DeleteCommand = gcnew SqlCommand("DELETE FROM Authors WHERE AuthorID = @AuthorID", connect);             dAdapt->DeleteCommand->Parameters->Add("@AuthorID", SqlDbType::Int, 4, "AuthorID");                      dSet = gcnew DataSet();             dAdapt->Fill(dSet, "Authors");             DataTable ^dt = dSet->Tables["Authors"];             if (dt == nullptr)                 throw gcnew Exception("No Authors Table");       for each(DataRow ^row in dt->Rows)             {                 lbAuthors->Items->Add(ListBoxItem(row));             }             CurrentAuthorID = -1;     }         System::Windows::Forms::Button^  bnRollback;         System::Windows::Forms::Button^  bnCommit;         System::Windows::Forms::Button^  bnDelete;         System::Windows::Forms::Button^  bnUpdate;         System::Windows::Forms::Button^  bnAdd;         System::Windows::Forms::ListBox^  lbAuthors;         System::Windows::Forms::TextBox^  tbLastName;         System::Windows::Forms::TextBox^  tbFirstName;         System::Windows::Forms::Label^  label2;         System::Windows::Forms::Label^  label1;         System::ComponentModel::Container ^components;         SqlDataAdapter ^dAdapt;         DataSet ^dSet;         int CurrentAuthorID;         void InitializeComponent(void)     {             this->bnRollback = (gcnew System::Windows::Forms::Button());             this->bnCommit = (gcnew System::Windows::Forms::Button());             this->bnDelete = (gcnew System::Windows::Forms::Button());             this->bnUpdate = (gcnew System::Windows::Forms::Button());             this->bnAdd = (gcnew System::Windows::Forms::Button());             this->lbAuthors = (gcnew System::Windows::Forms::ListBox());             this->tbLastName = (gcnew System::Windows::Forms::TextBox());             this->tbFirstName = (gcnew System::Windows::Forms::TextBox());             this->label2 = (gcnew System::Windows::Forms::Label());             this->label1 = (gcnew System::Windows::Forms::Label());             this->SuspendLayout();             //              // bnRollback             //              this->bnRollback->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 8.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,                  static_cast<System::Byte>(0)));             this->bnRollback->Location = System::Drawing::Point(312, 162);             this->bnRollback->Name = L"bnRollback";             this->bnRollback->Size = System::Drawing::Size(75, 23);             this->bnRollback->TabIndex = 19;             this->bnRollback->Text = L"Rollback";             this->bnRollback->Click += gcnew System::EventHandler(this, &Form1::bnRollback_Click);             //              // bnCommit             //              this->bnCommit->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 8.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,                  static_cast<System::Byte>(0)));             this->bnCommit->Location = System::Drawing::Point(312, 132);             this->bnCommit->Margin = System::Windows::Forms::Padding(3, 0, 3, 3);             this->bnCommit->Name = L"bnCommit";             this->bnCommit->Size = System::Drawing::Size(75, 23);             this->bnCommit->TabIndex = 18;             this->bnCommit->Text = L"Commit";             this->bnCommit->Click += gcnew System::EventHandler(this, &Form1::bnCommit_Click);             //              // bnDelete             //              this->bnDelete->Location = System::Drawing::Point(312, 78);             this->bnDelete->Name = L"bnDelete";             this->bnDelete->Size = System::Drawing::Size(75, 23);             this->bnDelete->TabIndex = 17;             this->bnDelete->Text = L"Delete";             this->bnDelete->Click += gcnew System::EventHandler(this, &Form1::bnDelete_Click);             //              // bnUpdate             //              this->bnUpdate->Location = System::Drawing::Point(312, 46);             this->bnUpdate->Name = L"bnUpdate";             this->bnUpdate->Size = System::Drawing::Size(75, 23);             this->bnUpdate->TabIndex = 16;             this->bnUpdate->Text = L"Update";             this->bnUpdate->Click += gcnew System::EventHandler(this, &Form1::bnUpdate_Click);             //              // bnAdd             //              this->bnAdd->Location = System::Drawing::Point(312, 18);             this->bnAdd->Margin = System::Windows::Forms::Padding(3, 3, 3, 1);             this->bnAdd->Name = L"bnAdd";             this->bnAdd->Size = System::Drawing::Size(75, 23);             this->bnAdd->TabIndex = 15;             this->bnAdd->Text = L"Add";             this->bnAdd->Click += gcnew System::EventHandler(this, &Form1::bnAdd_Click);             //              // lbAuthors             //              this->lbAuthors->FormattingEnabled = true;             this->lbAuthors->Location = System::Drawing::Point(25, 95);             this->lbAuthors->Name = L"lbAuthors";             this->lbAuthors->Size = System::Drawing::Size(257, 95);             this->lbAuthors->TabIndex = 14;             this->lbAuthors->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::lbAuthors_SelectedIndexChanged);             //              // tbLastName             //              this->tbLastName->Location = System::Drawing::Point(87, 51);             this->tbLastName->Margin = System::Windows::Forms::Padding(1, 3, 3, 3);             this->tbLastName->Name = L"tbLastName";             this->tbLastName->Size = System::Drawing::Size(127, 20);             this->tbLastName->TabIndex = 13;             //              // tbFirstName             //              this->tbFirstName->Location = System::Drawing::Point(87, 24);             this->tbFirstName->Margin = System::Windows::Forms::Padding(1, 3, 3, 3);             this->tbFirstName->Name = L"tbFirstName";             this->tbFirstName->Size = System::Drawing::Size(127, 20);             this->tbFirstName->TabIndex = 12;             //              // label2             //              this->label2->AutoSize = true;             this->label2->Location = System::Drawing::Point(25, 57);             this->label2->Margin = System::Windows::Forms::Padding(3, 3, 2, 3);             this->label2->Name = L"label2";             this->label2->Size = System::Drawing::Size(58, 13);             this->label2->TabIndex = 11;             this->label2->Text = L"Last Name";             //              // label1             //              this->label1->AutoSize = true;             this->label1->Location = System::Drawing::Point(25, 27);             this->label1->Margin = System::Windows::Forms::Padding(3, 3, 2, 3);             this->label1->Name = L"label1";             this->label1->Size = System::Drawing::Size(57, 13);             this->label1->TabIndex = 10;             this->label1->Text = L"First Name";             //              // Form1             //              this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);             this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;             this->ClientSize = System::Drawing::Size(413, 208);             this->Controls->Add(this->bnRollback);             this->Controls->Add(this->bnCommit);             this->Controls->Add(this->bnDelete);             this->Controls->Add(this->bnUpdate);             this->Controls->Add(this->bnAdd);             this->Controls->Add(this->lbAuthors);             this->Controls->Add(this->tbLastName);             this->Controls->Add(this->tbFirstName);             this->Controls->Add(this->label2);             this->Controls->Add(this->label1);             this->ResumeLayout(false);             this->PerformLayout();         }         String ^ListBoxItem(DataRow ^row)         {             return String::Format("{0} {1} {2}",                 row["AuthorID"],                 row["FirstName"],                 row["LastName"]);         }         System::Void bnAdd_Click(System::Object^ sender, System::EventArgs^ e)         {       if (tbFirstName->Text->Trim()->Length == 0 ||         tbLastName->Text->Trim()->Length == 0)         return;       DataTable ^dt = dSet->Tables["Authors"];       DataRow ^row = dt->NewRow();       row["FirstName"] = tbFirstName->Text;       row["LastName"]  = tbLastName->Text;       dt->Rows->Add(row);       lbAuthors->Items->Add(ListBoxItem(row));       tbFirstName->Text = "";       tbLastName->Text = "";         }         System::Void bnUpdate_Click(System::Object^ sender, System::EventArgs^ e)         {       if (CurrentAuthorID < 0)         return;       DataTable ^dt = dSet->Tables["Authors"];       array<DataRow^>^ row = dt->Select(String::Format("AuthorID={0}", CurrentAuthorID));       row[0]["FirstName"] = tbFirstName->Text;       row[0]["LastName"]  = tbLastName->Text;       lbAuthors->Items->Insert(lbAuthors->SelectedIndex, ListBoxItem(row[0]));       lbAuthors->Items->RemoveAt(lbAuthors->SelectedIndex);         }         System::Void bnDelete_Click(System::Object^ sender, System::EventArgs^ e)         {       if (CurrentAuthorID < 0)         return;       DataTable ^dt = dSet->Tables["Authors"];       array<DataRow^>^ row =          dt->Select(String::Format("AuthorID={0}", CurrentAuthorID));       row[0]->Delete();       lbAuthors->Items->RemoveAt(lbAuthors->SelectedIndex);        }         System::Void bnCommit_Click(System::Object^ sender, System::EventArgs^ e)         {       dAdapt->Update(dSet, "Authors");       dSet->AcceptChanges();             lbAuthors->Items->Clear();             DataTable ^dt = dSet->Tables["Authors"];       for each(DataRow ^row in dt->Rows)       {                 lbAuthors->Items->Add(ListBoxItem(row));             }             CurrentAuthorID = -1;         }         System::Void bnRollback_Click(System::Object^ sender, System::EventArgs^ e)         {             dSet->RejectChanges();             lbAuthors->Items->Clear();             DataTable ^dt = dSet->Tables["Authors"];       for each(DataRow ^row in dt->Rows)             {                 lbAuthors->Items->Add(ListBoxItem(row));             }             CurrentAuthorID = -1;         }         System::Void lbAuthors_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e)         {             array<wchar_t>^ ASpace = gcnew array<wchar_t> {(wchar_t)' '};             if (lbAuthors->SelectedItem == nullptr)             {                 CurrentAuthorID = -1;                 tbFirstName->Text = "";                 tbLastName->Text = "";                 return;             }             array<String^>^ split = lbAuthors->SelectedItem->ToString()->Split(ASpace);             CurrentAuthorID = Convert::ToInt32(split[0]);             tbFirstName->Text = split[1];             tbLastName->Text = split[2];        }    }; } [STAThreadAttribute] int main(array<System::String ^> ^args) {   Application::Run(gcnew Form1());   return 0; }