title: Pass data from TextBox to DataGridView in VB.NET
body: <p>I have two DataGridView in my form. One named grd_product and another is grd_order. When i click a cell in grd_product, it will display the detail of the product in the TextBox. So after the user insert the quantity, supposedly a new row will be added in grd_order when the user click btn_add. But i get an error instead.</p>
  
  <pre><code>Public Class frm_customer_orderproduct
      Dim current_id As String
      Private Sub frm_customer_orderproduct_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
          'Dim regDate As Date = Date.Today()
  
          lbl_user.Text = "Hi, " &amp; custName &amp; "!"
  
          refresh_grid()
          get_current_id()
      End Sub
      Private Sub refresh_grid()
          Dim mysql As String = "SELECT FLD_PRODUCT_ID, FLD_PRODUCT_NAME, FLD_PRODUCT_PRICE FROM TBL_PRODUCTS"
          Dim mydatatable As New DataTable
          Dim myreader As New OleDb.OleDbDataAdapter(mysql, myconnection)
          myreader.Fill(mydatatable)
          grd_product.DataSource = mydatatable
      End Sub
      Private Sub clear_fields()
          txt_id.Text = ""
          txt_name.Text = ""
          txt_price.Text = ""
          txt_qty.Text = ""
      End Sub
      Private Sub get_current_id()
          Dim current_row As Integer = grd_product.CurrentRow.Index
          current_id = grd_product(0, current_row).Value
  
          txt_id.Text = current_id
          txt_name.Text = grd_product(1, current_row).Value
          txt_price.Text = grd_product(2, current_row).Value
      End Sub
  
      Private Sub grd_product_CellClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles grd_product.CellClick
          get_current_id()
      End Sub
  
      Private Sub btn_add_Click(sender As System.Object, e As System.EventArgs) Handles btn_add.Click
          If txt_qty.Text = "" Then
              MsgBox("Please insert quantity")
          Else
              Dim dt As New DataTable
              Dim dr As DataRow
  
              dt.Columns.Add("Product ID")
              dt.Columns.Add("Product Name")
              dt.Columns.Add("Price")
              dt.Columns.Add("Quantity")
              dr = dt.NewRow
              dr("id") = txt_id.Text
              dr("name") = txt_name.Text
              dr("price") = txt_price.Text
              dr("qty") = txt_qty.Text
              dt.Rows.Add(dr)
              grd_order.DataSource = dt
  
          End If
  
      End Sub
  End Class
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/xPq9F.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/xPq9F.jpg" alt="enter image description here"></a>
  <a href="https://i.stack.imgur.com/s71jf.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/s71jf.jpg" alt="enter image description here"></a></p>
  
  <p>Supposedly, after the user click add for unlimited products, it will be added into grd_order</p>