2017-01-31 6 views
0

私のコードは、私がButton1をクリックするたびに、Datagridviewを更新するのではなく、前のものの複製である別のエントリを追加するだけです。私は私のコードでDatagridのデータをクリアしてから再度ロードする前に、何かが見つからないことを知っています。助けてください..VB.Net - DataGridviewのエントリは、イベントで複製を続けます

Private Function LoadData_UnitProcess() 

    Dim UP_SQL As String = "SELECT LotNum FROM Transactions WHERE StatusID=3 ORDER BY Process_EntryDate DESC" 
    Dim UP_Ad As OleDbDataAdapter = New OleDbDataAdapter(UP_SQL, strCon) 


    UP_Ad.Fill(UP_Ds, "Transactions") 
    UnitOnProcess_DG.DataSource = UP_Ds.Tables(0) 

    With UnitOnProcess_DG 
     .RowHeadersVisible = False 
     .Columns(0).HeaderCell.Value = "Lot #" 
     .Columns(0).Width = "363" 
     .AllowUserToAddRows = False 
    End With 


    LoadData_UnitProcess = "" 
End Function 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    LoadData_UnitProcess() 
End Sub 

Private Sub Displayer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    LoadData_UnitProcess() 
End Sub 
+0

1)LoadData_UnitReadyはサブ関数であり、関数ではありません。何もリターンしません。 2)表示されたサブ・オブ・ユーザーの誰もその機能を呼び出していない。どちらも他のものを呼び出す – genespos

+1

@genespos、 'LoadData_UnitReady'は実際には関数ですが、書き方が悪いものです。まず、戻り値の型は指定されていません。次に、関数名に代入することによって値を返す古いVB6スタイルを使用します。しかし、最も重要なのは、常に空の文字列を返し、その値はメソッドの目的とはまったく関係がないため、関数であることは正当な理由ではありません。それは 'サブ'であるべきです(SHOULD)。 – jmcilhinney

+0

申し訳ありませんが、間違った機能をコピーしました。私は今それを編集しました。 – Darwin

答えて

0

データセットUP_Dsはおそらくプロパティまたはフィールドです。データセットを再設定する前にリセットする必要があります。それ以外の場合は、前のデータセットに内容が追加されます。

UP_Ds.Reset() 
UP_Ad.Fill(UP_Ds, "Transactions") 
UnitOnProcess_DG.DataSource = UP_Ds.Tables(0) 
+0

Whoa!大変ありがとうございました。魅力的な作品! – Darwin

関連する問題