1. get rid of all the punctuation in string builder, a easy source of errors, and replace with creating SQL inside XML tag and passing that value.
2. Pass your variables as BIND VARIABLES and in ODP.NET you do that with named parameters
VB example:
Imports System.Xml.Linq.XElement
Public Shared Sub InsertIntoTest(ByVal strID As String, ByVal strPerson As String, ByVal strLocation As String)
Dim OraConnStr As String = ConfigurationManager.ConnectionStrings("{YourOraConnStrName}").ConnectionString
Try
Dim SQL =
<SQL>
INSERT INTO {YourSchemaName}.TEST
(ID, Person, Location)
VALUES
(:strID, :strPerson, :strLocation)
</SQL>
Using conn As New OracleConnection(OraConnStr)
Using cmd As New OracleCommand(SQL.Value, conn)
cmd.Parameters.Clear()
cmd.Parameters.Add("strID", OracleDbType.Varchar2, strID, ParameterDirection.Input)
cmd.Parameters.Add("strPerson", OracleDbType.Varchar2, strPerson, ParameterDirection.Input)
cmd.Parameters.Add("strLocation", OracleDbType.Varchar2, strLocation, ParameterDirection.Input)
conn.Open()
cmd.ExecuteNonQuery()
End Using
End Using
Catch ex As Exception
End Try
End Sub
Lannie
Contributor
3724 Points
726 Posts
Re: Insert multiple rows into Oracle from .Net
Jan 06, 2012 01:33 AM|LINK
Single row insert
1. get rid of all the punctuation in string builder, a easy source of errors, and replace with creating SQL inside XML tag and passing that value.
2. Pass your variables as BIND VARIABLES and in ODP.NET you do that with named parameters
VB example:
Imports System.Xml.Linq.XElement Public Shared Sub InsertIntoTest(ByVal strID As String, ByVal strPerson As String, ByVal strLocation As String) Dim OraConnStr As String = ConfigurationManager.ConnectionStrings("{YourOraConnStrName}").ConnectionString Try Dim SQL = <SQL> INSERT INTO {YourSchemaName}.TEST (ID, Person, Location) VALUES (:strID, :strPerson, :strLocation) </SQL> Using conn As New OracleConnection(OraConnStr) Using cmd As New OracleCommand(SQL.Value, conn) cmd.Parameters.Clear() cmd.Parameters.Add("strID", OracleDbType.Varchar2, strID, ParameterDirection.Input) cmd.Parameters.Add("strPerson", OracleDbType.Varchar2, strPerson, ParameterDirection.Input) cmd.Parameters.Add("strLocation", OracleDbType.Varchar2, strLocation, ParameterDirection.Input) conn.Open() cmd.ExecuteNonQuery() End Using End Using Catch ex As Exception End Try End Sub