To support you in understanding this topic, please read also these articles:      How to connect VB.NET to MySQL database     How to binding MySQL data to DataGridView     How to binding MySQL data to ComboBox List       I divide this topic into 4 parts. Make sure you have read the previous article.      How to Create, Read, Update, Delete (CRUD) - Part 1     How to Create, Read, Update, Delete (CRUD) - Part 2     How to Create, Read, Update, Delete (CRUD) - Part 3     Finally here is complete code. You can freely copy and paste it, but please understand each syntax purpose. Happy coding ^_^v      Imports  MySql.Data.MySqlClient  Imports  System.Data   Public Class  frmClass   Dim  conn  As  MySqlConnection   Dim  SQL  As String     Sub  Data_Load()      Dim  myCommand  As New  MySqlCommand      Dim  myAdapter As New MySqlDataAdapter      Dim  myData  As New  DataTable      conn =  New  MySqlConnection()     conn.ConnectionString =  "server=localhost;user id=root;"  & _                              "password=;database=datapos"       Try           If  conn.State = ConnectionState.Closed  Then  conn.Open()         SQL =  "Select classcode, classname From class"           myCommand.Connection = conn         myCommand.CommandText = SQL          myAdapter.SelectCommand = myCommand         myAdapter.Fill(myData)          With  grdData             .DataSource = myData             .AllowUserToAddRows =  False              .AllowUserToDeleteRows =  False              .ReadOnly =  True               .Columns(0).HeaderText =  "Kode Kelas"              .Columns(1).HeaderText =  "Nama Kelas"              .Columns(0).Width = 100             .Columns(1).Width = 250          End With           conn.Close()      Catch  myerror  As  MySqlException         MessageBox.Show( "Error: "  & myerror.Message)      Finally          conn.Dispose()      End Try  End Sub     Private Sub  frmClass_Load( ByVal  sender  As  Object, _      ByVal  e  As  System.EventArgs)  Handles Me .Load     Data_Load()   End Sub     Private Sub  tbrSave_Click( ByVal  sender  As  System.Object, _      ByVal  e  As  System.EventArgs)  Handles  tbrSave.Click       Dim  myCommand  As New  MySqlCommand      conn =  New  MySqlConnection()     conn.ConnectionString =  "server=localhost;user id=root;"  & _                              "password=;database=datapos"       Try          conn.Open()          If  tbrEdit.Enabled =  True Then              SQL =  "INSERT INTO class (classcode, classname) VALUES "  & _                    "('"  & txtCode.Text &  "', '"  & txtName.Text &  "')"           Else              SQL =  "UPDATE class SET classname = '"  & txtName.Text &  "' "  & _                    "WHERE classcode = '"  & txtCode.Text &  "'"           End If           myCommand.Connection = conn         myCommand.CommandText = SQL         myCommand.ExecuteNonQuery()           If  tbrEdit.Enabled =  True Then              MsgBox( "Data baru tersimpan" )          Else              MsgBox( "Perubahan tersimpan" )          End If           tbrCancel_Click( Nothing ,  Nothing )          conn.Close()      Catch  myerror  As  MySqlException         MessageBox.Show( "Error: "  & myerror.Message)      Finally          conn.Dispose()      End Try  End Sub     Private Sub  grdData_CellMouseDoubleClick( ByVal  sender  As  Object, _    ByVal  e  As  System.Windows.Forms.DataGridViewCellMouseEventArgs) _    Handles  grdData.CellMouseDoubleClick      txtCode.Text = grdData.CurrentRow.Cells(0).Value     txtName.Text = grdData.CurrentRow.Cells(1).Value     tbrEdit.Enabled =  False      txtCode.ReadOnly =  True     End Sub     Private Sub  tbrEdit_Click( ByVal  sender  As  System.Object, _      ByVal  e  As  System.EventArgs)  Handles  tbrEdit.Click      grdData_CellMouseDoubleClick( Nothing ,  Nothing )    End Sub     Private Sub  tbrDelete_Click( ByVal  sender  As  System.Object, _      ByVal  e  As  System.EventArgs)  Handles  tbrDelete.Click       If  MsgBox( "Yakin akan menghapus data?" , MsgBoxStyle.YesNo, _                "Konfirmasi" ) = MsgBoxResult.No  Then Exit Sub        Dim  myCommand  As New  MySqlCommand      conn =  New  MySqlConnection()     conn.ConnectionString =  "server=localhost;user id=root;"  & _                              "password=;database=datapos"       Try          conn.Open()         SQL =  "DELETE FROM class WHERE classcode = "  & _                "'"  & grdData.CurrentRow.Cells(0).Value &  "'"           myCommand.Connection = conn         myCommand.CommandText = SQL         myCommand.ExecuteNonQuery()          MsgBox( "Data terhapus" )          tbrCancel_Click( Nothing ,  Nothing )          conn.Close()      Catch  myerror  As  MySqlException         MessageBox.Show( "Error: "  & myerror.Message)      Finally          conn.Dispose()      End Try  End Sub     Private Sub  tbrCancel_Click( ByVal  sender  As  System.Object, _      ByVal  e  As  System.EventArgs)  Handles  tbrCancel.Click     txtCode.Text =  String .Empty     txtName.Text =  String .Empty     tbrEdit.Enabled =  True      txtCode.ReadOnly =  False      Data_Load()   End Sub   Private Sub  tbrClose_Click( ByVal  sender  As  System.Object, _      ByVal  e  As  System.EventArgs)  Handles  tbrClose.Click      Me .Close()   End Sub  End Class                   Sumber http://rani-irsan.blogspot.com