On previous articles we discussed: How to connect VB.NET to MySQL database How to binding MySQL data to DataGridView How to binding MySQL data to ComboBox List Next, I'm going to give you a Step by Step Tutorial on how to Create (add new data), Read, Update, Delete. I use table named "class" which has structure and values as below: First, we need to prepare buttons that used to Save, Edit, Delete, Cancel, and Exit. I'm going to create the buttons using ToolStrip Control . Further about create and work with ToolStrip Control , read also this article: Working with ToolStrip Control For inputting data, add labels and textboxes as below. Add a panel as container of those labels and textboxes for inputting data, then set property Dock = Top. Finally, add datagridview and set the property of datagridview Dock = Fill. Name control as above image. Done with UI, let's start with code behind. Import MySqlClient and System.Data: Imports MySql.Data.MySqlClient Imports System.Data Declare an object connection and a string variable for query. I name the form with frmClass. Public Class frmClass Dim conn As MySqlConnection Dim SQL As String End Class Create a sub procedure named Data_Load to display data into datagridview. Make sure to place this procedure under frmClass class. I add syntax of Try Catch as error handling. 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 Execute the procedure under Form_Load event . Private Sub frmClass_Load( ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me .Load Data_Load() End Sub Keep going...., we'll create a procedure to add new data. Users will input code and name into textboxes, then click Save button for saving new data into the database. Codes that need to be added under tbrSave_Click event are as following: 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() SQL = "INSERT INTO class (classcode, classname) VALUES " & _ "('" & txtCode.Text & "', '" & txtName.Text & "')" myCommand.Connection = conn myCommand.CommandText = SQL myCommand.ExecuteNonQuery() MsgBox( "Data gres tersimpan" ) txtCode.Text = String .Empty txtName.Text = String .Empty Data_Load() conn.Close() Catch myerror As MySqlException MessageBox.Show( "Error: " & myerror.Message) Finally conn.Dispose() End Try End Sub A message box is added after inserting data as an alert that data adding has already been succeeded. Data_Load procedure is called again after, for displaying the newest update. Let run the app then try to add a new data. Continue reading part 2 Sumber http://rani-irsan.blogspot.com