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

來源:互聯網
上載者:User

標籤:

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); }};}

  

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.