I've established connection as:
Imports System.Data.OracleClient
Imports System.Data
Public Class connection
Public conn As OracleConnection
Private constatus As String
Sub setonstatus(ByVal values As String)
Try
If values = "open" Then
conn.Open()
End If
Catch ex As Exception
ex.GetBaseException()
End Try
Try
If values = "close" Then
conn.Close()
End If
Catch ex As Exception
connection.FnMessageAlert(Me, ex.Message, "msg")
End Try
End Sub

Private Shared Sub FnMessageAlert(ByVal connection_Class As connection, ByVal p2 As String, ByVal p3 As String)
Throw New NotImplementedException
End Sub
Public Sub New()

conn = New OracleClient.OracleConnection("DataSource=---;user id=---;password=---;unicode=true")
End Sub
ReadOnly Property getconstatus() As String
Get
constatus = conn.State.ToString()
Return constatus
End Get
End Property
Public Shared Function getconnection() As OracleConnection
Dim varconn As OracleConnection
Dim varcmd As OracleCommand
varcmd = New OracleCommand
Dim varstrconn As String
varstrconn = "Data Source=---;User id=---;Password=---;unicode=true"
varconn = New OracleConnection(varstrconn)
If varconn.State = ConnectionState.Closed Then
varconn.Open()
End If
Return varconn
End Function
End Class

And my procedure is:
CREATE OR REPLACE PROCEDURE insertproduct(
p_pid pack_product.pid%TYPE,
p_pname IN pack_product.pname%TYPE,
p_unitprice IN pack_product.unitprice%TYPE)
IS
BEGIN
INSERT INTO pack_product(pid,pname,unitprice) VALUES (p_pid, p_pname,p_unitprice);
COMMIT;
END;


How to write data from datagrid when a button is clicked?