трудности с AdvancedDatagridView - PullRequest
0 голосов
/ 07 мая 2020

У меня уже есть хорошая программа, которая показывает мою базу данных в Datagridview,

с ней все в порядке, теперь я хотел бы добавить параметр фильтра в свой Datagridview, например фильтр Excel

i используется: AdvanceDatagridview это расширенный Datagridview с большим количеством опций фильтра,

проблема здесь, я не могу использовать этот datagridview, если я не свяжу его с Datatable, и я также, когда я это сделал t обнаружил большую проблему, потому что в моем старом коде есть Datagridviewrow

, и теперь я попытался преобразовать Datagridviewrow в datarow, чтобы импортировать его в datatable и использовать его, но это не сработало

my Старый код:

 sSQL = "SELECT " &
                                        "ItemID, " &
                                        "PSC_tdItems.OrderID, " &
                                        "ArtikelID, " &
                                        "Menge, " &
                                        "Art, "
                                        "CodeID, " &

 MyCommand = New SqlCommand(sSQL, conFF)

      drW2P = MyCommand.ExecuteReader
      If drW2P.HasRows Then
        While drW2P.Read()
          nField_ItemID = 0
          nField_OrderID = 0              
          nField_Quantity = 0.0
          sField_Art = ""
          sField_pscArticleID = ""
          sField_CodeID = ""


If Not DBNull.Value.Equals(drW2P("ItemID")) Then
            nField_ItemID = Convert.ToInt32(drW2P("ItemID"))
          End If
If Not DBNull.Value.Equals(drW2P("OrderID")) Then
            nField_OrderID = Convert.ToInt32(drW2P("OrderID"))
          End If
If Not DBNull.Value.Equals(drW2P("Menge")) Then
            nField_Quantity = Convert.ToDouble(drW2P("Menge").ToString.Replace(".", ""))
          End If
If Not DBNull.Value.Equals(drW2P("Art")) Then
            sField_Art = drW2P("Art").ToString
          End If
If Not DBNull.Value.Equals(drW2P("ArticelNumber")) Then
        sField_mspArticleNumber = drW2P("ArticelNumber").ToString
      End If
If Not DBNull.Value.Equals(drW2P("CodeID")) Then
        sField_CodeID = drW2P("CodeID").ToString
      End If 
Try
            MyRow = New DataGridViewRow
            MyRow.CreateCells(dgvW2P)
            MyRow.SetValues("0",
                                                    imgNotOK.ToBitmap,
                                                    nField_ItemID,
                                                    nField_OrderID,
                                                    nField_Quantity
                                                    sField_Art,
                                                    sField_pscArticleID
                                                    sField_CodeID)
 dgvW2P.Rows.Add(MyRow)
          Catch ex As Exception
            ErrorLogging(True, "Sub FillW2PGrid: Add a line in the grid" & vbCrLf & ex.Message & vbCrLf & "SQL:" & sSQL & vbCrLf & ex.StackTrace.ToString, nErrorLevel_Error)
          Finally
            If Not MyRow Is Nothing Then
              MyRow.Dispose()
              MyRow = Nothing
            End If
          End Try
     End While
      End If

мой новый код:

   sSQL = "SELECT " &
                                        "ItemID, " &
                                        "PSC_tdItems.OrderID, " &
                                        "ArtikelID, " &
                                        "Menge, " &
                                        "Art, "
                                        "CodeID, " &

 ' here are my new modification


Dim Dt As New DataTable
  Dt.Clear()
  Dim cmd As New SqlCommand

  If conFF.State = ConnectionState.Open Then
    conFF.Close()
  End If

  conFF.Open()
  cmd.Connection = conMspFF
  cmd.CommandType = CommandType.Text
  cmd.CommandText = (sSQL)

  Dim da As New SqlDataAdapter(cmd)
  da.Fill(Dt)

  bindingSource_data.DataSource = Dt
  dgvW2PNEW.DataSource = bindingSource_data
  dgvW2PNEW.Refresh()

      drW2PNEW = MyCommand.ExecuteReader

'проблема здесь: я не могу использовать HasRow с моим новым Datagridview

 If drW2PNEW.HasRows Then
            While drW2PNEW.Read()
              nField_ItemID = 0
              nField_OrderID = 0              
              nField_Quantity = 0.0
              sField_Art = ""
              sField_pscArticleID = ""
              sField_CodeID = ""


    If Not DBNull.Value.Equals(drW2PNEW("ItemID")) Then
                nField_ItemID = Convert.ToInt32(drW2PNEW("ItemID"))
              End If
    If Not DBNull.Value.Equals(drW2PNEW("OrderID")) Then
                nField_OrderID = Convert.ToInt32(drW2PNEW("OrderID"))
              End If
    If Not DBNull.Value.Equals(drW2PNEW("Menge")) Then
                nField_Quantity = Convert.ToDouble(drW2PNEW("Menge").ToString.Replace(".", ""))
              End If
    If Not DBNull.Value.Equals(drW2PNEW("Art")) Then
                sField_Art = drW2PNEW("Art").ToString
              End If
    If Not DBNull.Value.Equals(drW2PNEW("ArticelNumber")) Then
            sField_mspArticleNumber = drW2PNEW("ArticelNumber").ToString
          End If
    If Not DBNull.Value.Equals(drW2PNEW("CodeID")) Then
            sField_CodeID = drW2PNEW("CodeID").ToString
          End If 
    Try
                MyRow = New DataGridViewRow
                MyRow.CreateCells(dgvW2PNEW)
                MyRow.SetValues("0",
                                                        imgNotOK.ToBitmap,
                                                        nField_ItemID,
                                                        nField_OrderID,
                                                        nField_Quantity
                                                        sField_Art,
                                                        sField_pscArticleID
                                                        sField_CodeID)
' here i get the error
 dgvW2PNEW.Rows.Add(MyRow)
              Catch ex As Exception
                ErrorLogging(True, "Sub FillW2PGrid: Add a line in the grid" & vbCrLf & ex.Message & vbCrLf & "SQL:" & sSQL & vbCrLf & ex.StackTrace.ToString, nErrorLevel_Error)
              Finally
                If Not MyRow Is Nothing Then
                  MyRow.Dispose()
                  MyRow = Nothing
                End If
              End Try
         End While
          End If

Заранее благодарю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...