DEV Community

Annie
Annie

Posted on

Remove time in DataGridView and when it is exported to PDF

Please help me guys! I want the time in Date_Purchased(date) to be removed in datagridview. Because whenever I exported the datagrid in PDF, it has the date and time in it. I only want the date and remove the time especially when exported to PDf.

Here's the sample piece of code.

 Public Sub NewInventory()
    Dim NI as SqlCommand =con.CreateCommand
    NI.CommandText = "Insert into Items_table(Room_ID, PC_Number, Item_Name, Date_Purhased) VALUES (@Room_ID,@PC_Number, @Item_Name, @Date_Purchased);"

    NI.Parameters.AddWithValue("@Room_ID", Room_ID)
    NI.Parameters.AddWithValue("@PC_Number", PC_Number)
    NI.Parameters.AddWithValue("@Item_Name", Item_Name)
    NI.Parameters.AddWithValue("@Date_Purchased", DatePurchasedDTP.Value)

    NI.ExecuteNonQuery()
    MessageBox.Show("New item created.")
End Sub

//for DataGridView

 Public Sub GetRoomItems(RoomID As String)
      Dim getItems As String = "Select Item_ID, PC_Number, 
  Item_Name, Date_Purchased WHERE Room_ID=" + RoomID
      Dim adapter As New SqlDataAdapter(getItems, connection)

      Dim table As New DataTable()
      adapter.Fill(table)
      InventoryDataGrid.DataSource = table
 End Sub

//For exporting to pdf

 Private Sub ExportButton_Click(sender As Object, e As  EventArgs) Handles ExportButton.Click
      connection.Close()
      connection.Open()

      Dim pdfTable As New PdfPTable(ReportDataGridView.ColumnCount)
      pdfTable.DefaultCell.Padding = 1
      pdfTable.WidthPercentage = 100
      pdfTable.DefaultCell.HorizontalAlignment = Element. ALIGN_CENTER

      Dim ptable As New  Font(iTextSharp.text.Font.FontFamily.HELVETICA, 11, iTextSharp.text.Font.BOLD, BaseColor.BLACK)

 For Each column As DataGridViewColumn in ReportDataGridView.Columns
      Dim cell as new PdfPCell(New Phrase(New Chunk(column.HeaderText, ptable)))
      cell.HorizontalAlignment = Element.ALIGN_CENTER
      cell.FixedHeight = 30
      pdfTable.AddCell(cell)

 Next

 For Each row as DataGridViewRow In ReportDataGridView.Rows
      For each cell as DataGridViewCell In row.Cells
      pdfTable.AddCell(cell.Value.ToString)
      Next
 Next

     Dim folderpath As String = "C:\PDFs\"
     If Not Directory.Exists(folderpath) Then
          Directory.CreateDirectory(folderpath)
     End If

 Using sfd as New SaveFileDialog()
     sfd.ShowDialog()
     sfd.OverWritePrompt = True
     sfd.Title =" Save As"
     sfd.AddExtension = True
     sfd.DefaultExt = ".pdf"

      Using stream As New FileStream(sfd.FileName & ".pdf",FileMode.Create)
      Dim pdfdoc As New Document (PageSize.LETTER, 36.0F, 36.0F,36.0F,36.0F)
      PdfWriter.GetInstance(pdfdoc.stream)
      pdfdoc.Open()
      pdfdoc.Add(pdfTable)
      pdfdoc.Close()
      stream.Close()
      If File.Exists("path") Then
           File.AppendAllText("path", "contents")
 End If
 pdfdoc.Close()
 stream.Close()
      End Using

 End Using
 End Sub

If you would ask me what's the data type of Date_Purchased, it is date. I used date not datetime. And still confused why the time is still in pdf whenever I exported it.

Please help me! Thank you so much

sqlserver2017express,#VB.NET,#System,#Thesis

Top comments (0)