why is this code executed twice?

  • Thread starter Thread starter Bob
  • Start date Start date
B

Bob

Hi, (already posted but unsolved)

this code inserts twice the same record. I thin it is due to the "Selet
Scope_Identity" in the sqlcommand.
If i remove the Select part, the inserts occurs only once. If i remove the
line "comd.ExecuteNonQuery()", then the inserts also occurs once.

Is there something wrong in my code?

Thanks
Bob

Dim connection As SqlConnection
Dim comd As SqlCommand
Dim connectionstr, sql As String
Dim iden As Integer
connectionstr =
ConfigurationManager.ConnectionStrings("econn").ConnectionString.ToString()
connection = New SqlConnection(connectionstr)
comd = New SqlCommand()
comd.Connection = connection
sql = "INSERT INTO table(field,...) VALUES (@fld,...); SELECT
SCOPE_IDENTITY()"
comd.Parameters.Add("@var1", SqlDbType.NVarChar, 10).Value =
txtvnm.Text
...
connection.Open()
iden = Convert.ToInt32(comd.ExecuteScalar())
comd.ExecuteNonQuery()
connection.Close()
 
And already solved.

The line you suspect is the one that is doing the 2nd insert.
 
Hi Bob,

...
connection.Open()
iden = Convert.ToInt32(comd.ExecuteScalar())
comd.ExecuteNonQuery()
connection.Close()

Both executeScalar and executeNonQuery are starting the SQL line you have
told that has to be processed. You have them both in your program, therefore
it is logical that it is processed twice.

Cor
 
Back
Top