views:

81

answers:

0

Hi,

I cant understand why sending parameters to insert function works slow in .net compact framework.

Forexample following code inserts within 2 seconds

    cn = New SqlCeConnection(strstring)
    cmd = New SqlCeCommand
    Dim rs As SqlCeResultSet
    cmd.Connection = cn
    cmd.CommandType = CommandType.TableDirect
    cn.Open()
    Dim rec As SqlCeUpdatableRecord
    Dim DB As New Db
    Dim a As Integer = 1
    Dim b As Integer = 2
    For i As Integer = 0 To 1000
        If i = 0 Then
            cmd.CommandText = "A"
            rs = cmd.ExecuteResultSet(ResultSetOptions.Updatable)
            rec = rs.CreateRecord()
        End If
        Try
            rec.SetValue(0, a)
            rec.SetValue(1, b)
            rs.Insert(rec
         Catch ex As Exception

        End Try


    Next

But when i send parameters, a and b,to a insert sub,this code completes within 13 seconds.What does performance decrease?

 cn = New SqlCeConnection(strstring)
    cmd = New SqlCeCommand
    Dim rs As SqlCeResultSet
    cmd.Connection = cn
    cmd.CommandType = CommandType.TableDirect
    cn.Open()
    Dim rec As SqlCeUpdatableRecord

    For i As Integer = 0 To 1000
        If i = 0 Then
            cmd.CommandText = "A"
            cmd.CommandType = CommandType.TableDirect
            rs = cmd.ExecuteResultSet(ResultSetOptions.Updatable)
            rec = rs.CreateRecord()
        End If
        Try
            DB.Insert(1, 2, rs, rec)
        Catch ex As Exception

        End Try


    Next

This is insert sub in db class

Public Class Db

Public Shared Sub Insert(ByVal a As Integer, ByVal b As Integer, ByRef rs As SqlCeResultSet, ByRef rec As SqlCeUpdatableRecord)
    Try
        rec.SetValue(0, a)
        rec.SetValue(1, If(b = String.Empty, DirectCast(DBNull.Value, Object), b))
        rs.Insert(rec)
    Catch ex As Exception

    End Try


End Sub

end class