Problem mit select
-
Hallo zusammen
Ich hab folgendes Problem , im Programm hab ich ein Datagridview welches mir Daten
anzeigt wo von einer XML Datei geladen werden nun möchte ich gern eine Select abfrage starten ( Funktioniert so weit auch ). Aber meine Anzeige im Datagridview wird nicht aktuallisiert An Was kann das liegen ?Hier noch mein Code
private: System::Data::DataSet^ dataSet1; private: System::Windows::Forms::Button^ button1; private: System::Data::DataTable^ dataTable1; private: System::Data::DataColumn^ dataColumn1; private: System::Data::DataColumn^ dataColumn2; private: System::Data::DataColumn^ dataColumn3; private: System::Data::DataColumn^ dataColumn4; private: System::Data::DataColumn^ dataColumn5; private: System::Windows::Forms::DataGridView^ dataGridView1; private: System::Windows::Forms::DataGridViewTextBoxColumn^ datumDataGridViewTextBoxColumn; private: System::Windows::Forms::DataGridViewTextBoxColumn^ versionDataGridViewTextBoxColumn; private: System::Windows::Forms::DataGridViewTextBoxColumn^ änderungDataGridViewTextBoxColumn; private: System::Windows::Forms::DataGridViewTextBoxColumn^ bugfixesDataGridViewTextBoxColumn; private: System::Windows::Forms::DataGridViewTextBoxColumn^ iDDataGridViewTextBoxColumn; private: System::Windows::Forms::Button^ button2; private: System::Windows::Forms::TextBox^ textBox1; protected: private: /// <summary> /// Erforderliche Designervariable. /// </summary> System::ComponentModel::Container ^components; #pragma region Windows Form Designer generated code /// <summary> /// Erforderliche Methode für die Designerunterstützung. /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. /// </summary> void InitializeComponent(void) { this->dataSet1 = (gcnew System::Data::DataSet()); this->dataTable1 = (gcnew System::Data::DataTable()); this->dataColumn1 = (gcnew System::Data::DataColumn()); this->dataColumn2 = (gcnew System::Data::DataColumn()); this->dataColumn3 = (gcnew System::Data::DataColumn()); this->dataColumn4 = (gcnew System::Data::DataColumn()); this->dataColumn5 = (gcnew System::Data::DataColumn()); this->button1 = (gcnew System::Windows::Forms::Button()); this->dataGridView1 = (gcnew System::Windows::Forms::DataGridView()); this->datumDataGridViewTextBoxColumn = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->versionDataGridViewTextBoxColumn = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->änderungDataGridViewTextBoxColumn = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->bugfixesDataGridViewTextBoxColumn = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->iDDataGridViewTextBoxColumn = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn()); this->button2 = (gcnew System::Windows::Forms::Button()); this->textBox1 = (gcnew System::Windows::Forms::TextBox()); (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->dataSet1))->BeginInit(); (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->dataTable1))->BeginInit(); (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->dataGridView1))->BeginInit(); this->SuspendLayout(); // // dataSet1 // this->dataSet1->DataSetName = L"XmlDataSet"; this->dataSet1->Tables->AddRange(gcnew cli::array< System::Data::DataTable^ >(1) {this->dataTable1}); // // dataTable1 // this->dataTable1->Columns->AddRange(gcnew cli::array< System::Data::DataColumn^ >(5) {this->dataColumn1, this->dataColumn2, this->dataColumn3, this->dataColumn4, this->dataColumn5}); cli::array< System::String^ >^ __mcTemp__1 = gcnew cli::array< System::String^ >(1) {L"ID"}; this->dataTable1->Constraints->AddRange(gcnew cli::array< System::Data::Constraint^ >(1) {(gcnew System::Data::UniqueConstraint(L"Constraint1", __mcTemp__1, true))}); this->dataTable1->PrimaryKey = gcnew cli::array< System::Data::DataColumn^ >(1) {this->dataColumn5}; this->dataTable1->TableName = L"Table1"; // // dataColumn1 // this->dataColumn1->ColumnName = L"Datum"; // // dataColumn2 // this->dataColumn2->ColumnName = L"Version"; // // dataColumn3 // this->dataColumn3->ColumnName = L"Änderung"; // // dataColumn4 // this->dataColumn4->ColumnName = L"Bugfixes"; // // dataColumn5 // this->dataColumn5->AllowDBNull = false; this->dataColumn5->AutoIncrement = true; this->dataColumn5->ColumnName = L"ID"; this->dataColumn5->DataType = System::Int32::typeid; this->dataColumn5->ReadOnly = true; // // button1 // this->button1->Location = System::Drawing::Point(408, 264); this->button1->Name = L"button1"; this->button1->Size = System::Drawing::Size(75, 23); this->button1->TabIndex = 1; this->button1->Text = L"button1"; this->button1->UseVisualStyleBackColor = true; this->button1->Click += gcnew System::EventHandler(this, &History::button1_Click); // // dataGridView1 // this->dataGridView1->AllowUserToOrderColumns = true; 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->AutoGenerateColumns = false; this->dataGridView1->BorderStyle = System::Windows::Forms::BorderStyle::Fixed3D; this->dataGridView1->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize; this->dataGridView1->Columns->AddRange(gcnew cli::array< System::Windows::Forms::DataGridViewColumn^ >(5) {this->datumDataGridViewTextBoxColumn, this->versionDataGridViewTextBoxColumn, this->änderungDataGridViewTextBoxColumn, this->bugfixesDataGridViewTextBoxColumn, this->iDDataGridViewTextBoxColumn}); this->dataGridView1->DataMember = L"Table1"; this->dataGridView1->DataSource = this->dataSet1; this->dataGridView1->Location = System::Drawing::Point(12, 12); this->dataGridView1->Name = L"dataGridView1"; this->dataGridView1->RowHeadersVisible = false; this->dataGridView1->Size = System::Drawing::Size(480, 246); this->dataGridView1->TabIndex = 2; // // datumDataGridViewTextBoxColumn // this->datumDataGridViewTextBoxColumn->DataPropertyName = L"Datum"; this->datumDataGridViewTextBoxColumn->FillWeight = 60; this->datumDataGridViewTextBoxColumn->HeaderText = L"Datum"; this->datumDataGridViewTextBoxColumn->Name = L"datumDataGridViewTextBoxColumn"; this->datumDataGridViewTextBoxColumn->ToolTipText = L"Datum wann der Datensatz erstellt wurde"; // // versionDataGridViewTextBoxColumn // this->versionDataGridViewTextBoxColumn->DataPropertyName = L"Version"; this->versionDataGridViewTextBoxColumn->FillWeight = 60; this->versionDataGridViewTextBoxColumn->HeaderText = L"Version"; this->versionDataGridViewTextBoxColumn->Name = L"versionDataGridViewTextBoxColumn"; // // änderungDataGridViewTextBoxColumn // this->änderungDataGridViewTextBoxColumn->AutoSizeMode = System::Windows::Forms::DataGridViewAutoSizeColumnMode::Fill; this->änderungDataGridViewTextBoxColumn->DataPropertyName = L"Änderung"; this->änderungDataGridViewTextBoxColumn->FillWeight = 300; this->änderungDataGridViewTextBoxColumn->HeaderText = L"Änderung"; this->änderungDataGridViewTextBoxColumn->Name = L"änderungDataGridViewTextBoxColumn"; // // bugfixesDataGridViewTextBoxColumn // this->bugfixesDataGridViewTextBoxColumn->DataPropertyName = L"Bugfixes"; this->bugfixesDataGridViewTextBoxColumn->FillWeight = 300; this->bugfixesDataGridViewTextBoxColumn->HeaderText = L"Bugfixes"; this->bugfixesDataGridViewTextBoxColumn->Name = L"bugfixesDataGridViewTextBoxColumn"; // // iDDataGridViewTextBoxColumn // this->iDDataGridViewTextBoxColumn->DataPropertyName = L"ID"; this->iDDataGridViewTextBoxColumn->HeaderText = L"ID"; this->iDDataGridViewTextBoxColumn->Name = L"iDDataGridViewTextBoxColumn"; this->iDDataGridViewTextBoxColumn->ReadOnly = true; // // button2 // this->button2->Location = System::Drawing::Point(198, 264); this->button2->Name = L"button2"; this->button2->Size = System::Drawing::Size(75, 23); this->button2->TabIndex = 3; this->button2->Text = L"button2"; this->button2->UseVisualStyleBackColor = true; this->button2->Click += gcnew System::EventHandler(this, &History::button2_Click); // // textBox1 // this->textBox1->Location = System::Drawing::Point(22, 268); this->textBox1->Name = L"textBox1"; this->textBox1->Size = System::Drawing::Size(154, 20); this->textBox1->TabIndex = 4; // // History // this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(504, 299); this->Controls->Add(this->textBox1); this->Controls->Add(this->button2); this->Controls->Add(this->dataGridView1); this->Controls->Add(this->button1); this->Name = L"History"; this->Text = L"History"; this->Load += gcnew System::EventHandler(this, &History::History_Load); (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->dataSet1))->EndInit(); (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->dataTable1))->EndInit(); (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->dataGridView1))->EndInit(); this->ResumeLayout(false); this->PerformLayout(); } #pragma endregion private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { // this->dataSet1->WriteXml("Datasethistory.xml",Data::XmlWriteMode::WriteSchema); } private: System::Void History_Load(System::Object^ sender, System::EventArgs^ e) { this->dataSet1->ReadXml("Datasethistory.xml",Data::XmlReadMode::Auto); } private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { this->dataTable1->Select("ID = 1");// Hier klappt die Abfrage aber die Aktuallisierung klappt nicht !! } }; }
Ich denk mal es ist nicht viel aber was
-
Verwende ein Dataview um die Daten gefiltert anzuzeigen.
Schau Dir mal die Signatur an:
array<DataRow^>^ Select ()
Wie soll denn das DGV bei
this->dataTable1->Select("ID = 1");// Hier klappt die Abfrage aber die Aktuallisierung klappt nicht !!
irgendwas machen ?
-
Dachte das man es so ähnlich hand haben kann wie wenn man einen Tableadapter hat und dort einen Select ausführt und dann mit -> FillByXX wieder das Dataset/DVG auffüllen kann.
Wie kann ich es mit einem Dataview lösen ? Ich benutze die 2005 Express Version und da ist in der Toolboxleiste kein Dataview enthalten ! Wenn ich ein Dataview von Hand anlege siehe ich es im Desinger modus unten neben dem Dataset aber wie bekomme ich es ins Form fenster ?Oder ist es möglich das DVG mit dem Ergebniss von
array<DataRow^>^ Select ()
wieder zu befüllen ?
-
Rechtklick auf die Toolbox -> HInzufügen.
Das DataView bekommst Du nicht auf die Form, nur unter die Form. Es ist kein Visuelles Control.
Binde das DV an das DataSet und das Gatagridview an die DataView -> schon kannst Du über das DataView mittels RowFilter die Daten filtern.
-
THX so gehts !