C ++: read SQL server data using System: Data: SqlClient, usingsqlclient

Source: Internet
Author: User

C ++: read SQL server data using System: Data: SqlClient, usingsqlclient

Stdafx. h:

// stdafx.h : include file for standard system include files,// or project specific include files that are used frequently, but// are changed infrequently#pragma once#using <mscorlib.dll>#using <System.dll>#using <System.Data.dll>#using <System.Xml.dll>// TODO: reference additional headers your program requires here

Form1.h

 

#pragma oncenamespace SQLServer2008R2inCCLI {using namespace System;using namespace System::ComponentModel;using namespace System::Collections;using namespace System::Windows::Forms;using namespace System::Data;using namespace System::Drawing;using namespace System::Configuration;    using namespace ADODB;//c:\Program Files\Common Files\System\ADO\msado15.dllusing namespace System::Data::SqlClient;/// <summary>/// Summary for Form1////// WARNING: If you change the name of this class, you will need to change the///          'Resource File Name' property for the managed resource compiler tool///          associated with all .resx files this class depends on.  Otherwise,///          the designers will not be able to interact properly with localized///          resources associated with this form./// </summary>public ref class Form1 : public System::Windows::Forms::Form{public:Form1(void){InitializeComponent();////TODO: Add the constructor code here//}protected:/// <summary>/// Clean up any resources being used./// </summary>~Form1(){if (components){delete components;}}        private: System::Windows::Forms::DataGridView^ dataGridView1;        private: System::Windows::Forms::Label^ label1;        private: System::Windows::Forms::ComboBox^ comboBoxTables;        private: System::Windows::Forms::Button^ buttonOK;        private: System::Windows::Forms::ToolTip^ toolTip1;private: System::ComponentModel::IContainer^  components;protected: private:/// <summary>/// Required designer variable./// </summary>#pragma region Windows Form Designer generated code/// <summary>/// Required method for Designer support - do not modify/// the contents of this method with the code editor./// </summary>void InitializeComponent(void){this->components = (gcnew System::ComponentModel::Container());this->dataGridView1 = (gcnew System::Windows::Forms::DataGridView());this->label1 = (gcnew System::Windows::Forms::Label());this->comboBoxTables = (gcnew System::Windows::Forms::ComboBox());this->buttonOK = (gcnew System::Windows::Forms::Button());this->toolTip1 = (gcnew System::Windows::Forms::ToolTip(this->components));(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->dataGridView1))->BeginInit();this->SuspendLayout();// // dataGridView1// this->dataGridView1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom) | System::Windows::Forms::AnchorStyles::Left) | System::Windows::Forms::AnchorStyles::Right));this->dataGridView1->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize;this->dataGridView1->Location = System::Drawing::Point(12, 44);this->dataGridView1->Name = L"dataGridView1";this->dataGridView1->ShowCellToolTips = false;this->dataGridView1->Size = System::Drawing::Size(493, 266);this->dataGridView1->TabIndex = 0;this->dataGridView1->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::dataGridView1_MouseDown);this->dataGridView1->DataError += gcnew System::Windows::Forms::DataGridViewDataErrorEventHandler(this, &Form1::dataGridView1_DataError);// // label1// this->label1->Location = System::Drawing::Point(12, 9);this->label1->Name = L"label1";this->label1->Size = System::Drawing::Size(65, 32);this->label1->TabIndex = 1;this->label1->Text = L"Select table to show:";// // comboBoxTables// this->comboBoxTables->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;this->comboBoxTables->FormattingEnabled = true;this->comboBoxTables->Location = System::Drawing::Point(83, 12);this->comboBoxTables->Name = L"comboBoxTables";this->comboBoxTables->Size = System::Drawing::Size(165, 21);this->comboBoxTables->TabIndex = 2;// // buttonOK// this->buttonOK->Location = System::Drawing::Point(254, 12);this->buttonOK->Name = L"buttonOK";this->buttonOK->Size = System::Drawing::Size(56, 21);this->buttonOK->TabIndex = 3;this->buttonOK->Text = L"OK";this->buttonOK->UseVisualStyleBackColor = true;this->buttonOK->Click += gcnew System::EventHandler(this, &Form1::buttonOK_Click);// // toolTip1// this->toolTip1->AutoPopDelay = 5000;this->toolTip1->InitialDelay = 0;this->toolTip1->IsBalloon = true;this->toolTip1->ReshowDelay = 0;this->toolTip1->ToolTipIcon = System::Windows::Forms::ToolTipIcon::Warning;this->toolTip1->UseAnimation = false;this->toolTip1->UseFading = false;// // Form1// this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;this->ClientSize = System::Drawing::Size(517, 322);this->Controls->Add(this->buttonOK);this->Controls->Add(this->comboBoxTables);this->Controls->Add(this->label1);this->Controls->Add(this->dataGridView1);this->Name = L"Form1";this->Text = L"Form1";this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);this->FormClosed += gcnew System::Windows::Forms::FormClosedEventHandler(this, &Form1::Form1_FormClosed);(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->dataGridView1))->EndInit();this->ResumeLayout(false);}#pragma endregionString ^ServerName, ^DBName;        SqlConnection ^conn;        SqlDataAdapter ^adapter;        DataTable ^dtMain;private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) { ServerName = "GEOVINDU-PC\\GEOVIN";             DBName = "DuVehicle";             // create database if not exists             //try {// ADODB::Connection="";//c:\Program Files\Common Files\System\ADO\msado15.dll              // connect to server             // to database "master" to check if our database exists             // to create it if it isn't exists             //conn = gcnew SqlConnection("Server=" + ServerName + ";Database=DuVehicle;UID=sa;PWD=geovindu;");             //conn->Open(); //SqlCommand ^cmd = gcnew SqlCommand(String::Format("CREATE DATABASE [{0}] ON (" +      //                                              "    NAME = {0}, " +//"    FILENAME = '" + Application::StartupPath + "\\{0}.mdf'" +      //                                              ");",      //                                              DBName), conn);      //               cmd->ExecuteNonQuery(); //delete cmd;            /* }             catch (Exception ^ex) { }*/             // create table "Table 1" if not exists //SqlCommand ^cmd = gcnew SqlCommand(String::Format(     //                                 "IF NOT EXISTS (" +     //                                 "    SELECT [name] " +     //                                 "    FROM sys.tables " +     //                                 "    WHERE [name] = '{0}'" +     //                                 ") " +     //                                 "CREATE TABLE [{0}] (" +     //                                 "    id [INT] IDENTITY(1,1) PRIMARY KEY CLUSTERED, " +     //                                 "    [text column] [TEXT] NULL, " +     //                                 "    [int column] [INT] NULL " +     //                                 ")",     //                                 "Table 1"), conn);     //        cmd->ExecuteNonQuery(); //delete cmd;             conn = gcnew SqlConnection("Server=" + ServerName + ";Database=DuVehicle;UID=sa;PWD=geovindu;");             conn->Open();             // get all tables from DB             DataTable ^dt = conn->GetSchema("Tables");             for (int i = 0; i < dt->Rows->Count; i++) {if (dt->Rows[i]->ItemArray[dt->Columns->IndexOf("TABLE_TYPE")]->ToString() == "BASE TABLE") {comboBoxTables->Items->Add(dt->Rows[i]->ItemArray[dt->Columns->IndexOf("TABLE_NAME")]->ToString());}                 } delete dt; }private: System::Void buttonOK_Click(System::Object^  sender, System::EventArgs^  e) { if (comboBoxTables->SelectedItem == nullptr) return;             adapter = gcnew SqlDataAdapter("SELECT * FROM [" + comboBoxTables->SelectedItem->ToString() + "]", conn);             gcnew SqlCommandBuilder(adapter);             dtMain = gcnew DataTable();             adapter->Fill(dtMain);             dtMain->Columns["id"]->ReadOnly = true; // deprecate id field edit to prevent exceptions             dataGridView1->DataSource = dtMain; }private: System::Void Form1_FormClosed(System::Object^  sender, System::Windows::Forms::FormClosedEventArgs^  e) { if (adapter == nullptr) return;             adapter->Update(dtMain); } // show tooltip (not intrusive MessageBox) when user trying to input letters into INT column cellprivate: System::Void dataGridView1_DataError(System::Object^  sender, System::Windows::Forms::DataGridViewDataErrorEventArgs^  e) { if (dtMain->Columns[e->ColumnIndex]->DataType == Int64::typeid || dtMain->Columns[e->ColumnIndex]->DataType == Int32::typeid ||dtMain->Columns[e->ColumnIndex]->DataType == Int16::typeid)            {                Rectangle ^rectColumn;                rectColumn = dataGridView1->GetColumnDisplayRectangle(e->ColumnIndex, false);                Rectangle ^rectRow;                rectRow = dataGridView1->GetRowDisplayRectangle(e->RowIndex, false);                toolTip1->ToolTipTitle = "This field is for numbers only.";                toolTip1->Show(" ",                          dataGridView1,                          rectColumn->Left, rectRow->Top + rectRow->Height);delete rectColumn;delete rectRow;            } }private: System::Void dataGridView1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) { toolTip1->Hide(dataGridView1); }};}

  

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.