我有一個選擇查詢,以便從訪問搜索數據,但問題是,搜索功能複製每一行(顯示在同一行2次DGV)。任何人都可以提前指導我解決問題。
Dim sql = "SELECT A.* FROM ((tblMatrice AS B INNER JOIN tblRefMatrice AS C ON B.strMatrice = C.strMatrice) INNER JOIN tblRefMatDetails AS D ON C.intIDref = D.intIDRef) LEFT OUTER JOIN tblDopages AS A on A.strMatrice = B.strMatrice where "
cmd = New OleDbCommand(sql, myConnection)
If CKBrefech.Checked = True Then
sql = sql & "strRefEch = @Refech AND "
End If
sql = sql & "strMethode = @Methode AND "
sql = sql & "strPurif = @Purif AND "
If CKBmatrice.Checked Then
sql = sql & "A.strMatrice = @Matrice AND "
End If
sql = sql & "strMolecule = @Molecule AND "
If CKBechprep.Checked Then
sql = sql & "datDatePrepa >= @DatPrepa AND "
End If
If CKBechau.Checked Then
sql = sql & "datDatePrepa <= @Datau AND "
End If
If CKBtrigprepa.Checked = True Then
sql = sql & "strTrigPrepa = @Trigprep AND "
End If
If CKBtriganaly.Checked = True Then
sql = sql & "strTrigAnaly = @Triganaly AND "
End If
If CKBappar.Checked = True Then
sql = sql & "strNomTech = @Tech AND "
End If
If CKBnumappar.Checked = True Then
sql = sql & "[strEquip(Appareil)] = @Equip AND "
End If
If CKBteneurmini.Checked = True Then
sql = sql & "dblDopage > @TenMini AND "
End If
If CKBteneurmax.Checked = True Then
sql = sql & "dblDopage < @TenMaxi AND "
End If
If GroupBox1.Enabled Then
Try
If CKBnomref.Checked Then
sql = sql & "D.strReferentiel = @NomRef AND "
End If
If CKBniv1.Checked Then
sql = sql & "D.strNIveau1 = @Niv1 AND "
End If
If CKBniv2.Checked Then
sql = sql & "D.strNiveau2 = @Niv2 AND "
End If
If CKBniv3.Checked Then
sql = sql & "D.strNiveau3 = @Niv3 AND "
End If
If CKBniv4.Checked Then
sql = sql & "D.strNiveau4 = @Niv4 AND "
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End If
' Remove the last AND if any ....'
If sql.EndsWith(" AND ") Then
sql = sql.Substring(0, sql.Length - 4)
End If
' Remove the WHERE if no textbox has been filled....'
If sql.EndsWith(" WHERE ") Then
sql = sql.Substring(0, sql.Length - 7)
End If
sql = sql & " ORDER BY datDatePrepa ASC "
cmd.CommandText = sql
cmd.Connection = myConnection
Dim MyDataSet As New DataSet
MyDataSet.Clear()
da = New OleDbDataAdapter(sql, myConnection)
da.SelectCommand = cmd
da.SelectCommand.Parameters.Add(New OleDbParameter("@Methode", CBmethode.Text)) 'adding Methode parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@Purif", CBpurif.Text)) 'adding Purif parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@Matrice", CBmatrice.Text)) 'adding Matrice parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@Molecule", CBmol.Text)) 'adding Molecule parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@DatPrepa", DTPechprep.Value)) 'adding date parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@datau", DTPechprep.Value)) 'adding date parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@Trigprep", TBtrigprepa.Text)) 'adding Trigprep parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@Triganaly", TBtrigAnaly.Text)) 'adding Triganaly parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@Tech", CBappar.Text)) 'adding Tech parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@Equip", CBnumappar.Text)) 'adding Equip parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@TenMini", TBteneurmini.Text)) 'adding TenMini parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@TenMaxi", TBteneurmax.Text)) 'adding TenMaxi parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@NomRef", CBnomref.Text)) 'adding TenMaxi parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@Niv1", CBniv1.Text)) 'adding Niv1 parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@Niv2", CBniv2.Text)) 'adding Niv2 parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@Niv3", CBniv3.Text)) 'adding Niv3 parameters to datatable
da.SelectCommand.Parameters.Add(New OleDbParameter("@Niv4", CBniv4.Text)) 'adding Niv4 parameters to datatable
da.Fill(MyDataSet, "Matrice")
DataGridView1.DataSource = Nothing
DataGridView1.DataSource = MyDataSet.Tables("Matrice")
'to focus on first row of DGV after populating it
myConnection.Close()
我敢肯定問題不在於表的連接,因爲我在沒有參數的情況下做了相同的查詢,並且它工作得很好。所以問題是在參數或數據集... btw請澄清您的評論的最後一行@Daniele – Marwan