why is this code executed twice?

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()
 
S

Stephany Young

And already solved.

The line you suspect is the one that is doing the 2nd insert.
 
C

Cor Ligthert [MVP]

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top