Announcement

Collapse
No announcement yet.

datengebundenes DataGridView

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • datengebundenes DataGridView

    Hallo liebe VB´ler,

    ich komm mal wieder nicht weiter und bräuchte jemand, der mich von der Leitungs stupst
    Ich habe ein DataGridView, das mit einer SQL-Datenbank gebunden ist. Jedoch soll der User in diesem DataGridView nicht alle Felder der eigentlichen Datenbank manuell füllen können (werden auch gar nicht angezeigt, sondern diese sollen im Hintergrund automatisch mit bestimmten Daten, die ich aktuell im Zugriff habe, vorbelegt werden. Im Prinzip handelt es sich um die Key-Felder, die vom Programm selber gefüllt werden sollen.

    Ich hoffe, ich habs verständlich erklärt.

    Ist das arg umständlich, was ich vorhabe, oder gibts da andere einfachere Möglichkeiten?

    Bin für jeden Tipp dankbar!!!
    Gruss und Danke
    Gogat

  • #2
    kann mir keiner helfen?

    Comment


    • #3
      Hallo,

      kann mir keiner helfen?
      das Problem wird mehr sein, dass keiner versteht, wo bei der Frage das Problem ist ;-)

      Ein DataGridView ist "nur" die sichtbare Benutzeroberfläche für die Daten. Wenn bestimmte Felder nicht vom Benutzer, sondern direkt vom Programm gefüllt werden sollen, ist das DataGridView nicht zuständig. Statt dessen wird direkt die DataTable-Instanz im DataSet gefüllt. Das folgende Beispiel (das ich nur in der C#-Fassung am Lager habe) fügt Master/Detail-Datensätze in ein typisiertes DataSet ein, in dem die DataRelation zwischen den Tabellen definiert ist. Der Detaildatensatz wird über die Methode SetParentRow mit dem aktuellen Masterdatensatz verbunden:

      Code:
              private void Form1_Load(object sender, EventArgs e)
              {
                  for (int i = 1; i <= 10; i++)
                  {
                      DataSetMasterDetail.MasterRow aMRow;
                      aMRow = dataSetMasterDetail.Master.NewMasterRow();
                      aMRow.master_wert = "Master " + i.ToString();
                      dataSetMasterDetail.Master.AddMasterRow(aMRow);
                      int iCnt = (i % 2 == 1) ? 2 : 3;
                      for (int j = 1; j <= iCnt; j++)
                      {
                          DataSetMasterDetail.DetailRow aDRow;
                          aDRow = dataSetMasterDetail.Detail.NewDetailRow();
                          aDRow.detail_wert = String.Format("Detail {0}-{1}", i, j);
                          aDRow.SetParentRow(aMRow);
                          dataSetMasterDetail.Detail.AddDetailRow(aDRow);
                      }
                  }
              }
      Wenn es darum geht, ein Feld des im DataGridView momentan ausgewählten Datensatzes im Programm zu füllen, könnte das in VB so aussehen:

      Code:
         Private Sub Button3_Click(ByVal sender As System.Object, _
            ByVal e As System.EventArgs) Handles Button3.Click
              Dim aRV As DataRowView
              aRV = TestTblBindingSource.Current
              Dim aTTRow As DataSetInMemoryTable.TestTblRow
              aTTRow = DirectCast(aRV.Row, DataSetInMemoryTable.TestTblRow)
              Label1.Text = aTTRow.testtbl_id.ToString()
              aTTRow.spalteX = "Neuer Wert"
          End Sub
      Hinter TestTblBindingSource verbirgt sich die BindingSource-Komponente, die über das Datenquellenfester dem Formular zugeordnet wurde.

      Comment

      Working...
      X