Announcement

Collapse
No announcement yet.

Frage zu VB.Net und Linq2Sql

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

  • Frage zu VB.Net und Linq2Sql

    Hallo,

    ich arbeite mich gerade ins Thema "Linq2Sql" ein. Dabei hab ich allerdings eine Frage, die ich durch die Suche hier im Forum nicht gelöst bekomme. Vielleicht weiß jemand von Euch einen Rat??

    Ich hab mir ein kleines Testprojekt in VB.Net erstellt. Es gibt eine Form und ein DataContext-File (.dbml) auf meine Daten. Über das DataContext-File habe ich mir ein DataGridView und ein DataBindingNavigator auf meine Form erstellen lassen. Soweit alles kein Problem. Nun möchte ich über den ToolStripButton "Add" eine neue DataRow ins Grid einfügen, auch das klappt. Nur ist nach dem Hinzufügen der neuen Row immer eine weitere Row in DataGrid (ohne Daten) vorhanden.

    Zum besseren Verständnis ein wenig Code:

    Code:
    Public Class Form1
        Private db As NorthwindDataContext
    
    
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Try
                getData()
    
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
        End Sub
    
        Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click
            Try
                Dim cust = New Customers
    
                With category
                    .Firstname = "Manfred"
                    .LastName = "Mustermann"
                End With
    
                grdCustomer.EndEdit()
    
                db.Customers.InsertOnSubmit( cust )
                db.SubmitChanges()
                getData()
    
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
        End Sub
    
        Private Sub getData()
            Try
    
                db = New NorthwindDataContext
    
                CustomersBindingSource.DataSource = db.Customers.AsQueryable
    
    
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try
    
        End Sub
    End Class
    
    Private

    In diesem Beispiel wird ein neuer Customer in die DB geschrieben, danach hole ich mir eine aktuelle DataSource um den neuen Datensatz im Grid mit anzuzeigen. Allerdings habe ich dann immer noch eine extra Row ohne Einträge im Grid und die stört. Mir scheint, als ob ich irgendwo noch eine angestoßene Eingabe beenden muss, aber ich sehe einfach nicht wo??!!

    Vielleicht sieht jemand von Euch meinen Fehler?

    Schönen Gruß,
    Andreas

  • #2
    Die Leere Zeile die ganz untensteht dient dazu Neue Daten einzugeben
    Wenn über das DataGridView keine daten eingegeben werden dann kann man für
    die Daten eingabe Sperren. Am Besten bei den Eigenschaften reinschauen dann
    nach dem Datenfüllen die Dateneingabe sperren

    müsste .AllowUser irgendwas sein

    mfg Peter

    Comment


    • #3
      Hallo Peter,

      die Eigenschaften des Grids
      1. .AllowUserToAddNewRows
      1. .AllowUserToEditRows

      usw..
      sind bereits zum Start auf "False" gesetzt.

      Wenn ich mir einen neuen Button in den Navigator erstelle und über diesen die Methode zum Einfügen einer neuen Row aufrufe, dann geht es komischerweise??

      Dann muss ich das wohl so machen!

      Aber danke für den Tipp!

      Gruß,
      Andreas

      Comment

      Working...
      X