Why does my SQL 'INSERT' statement execute twice?
asp.net, c#, sql, sql-server
Solution
You are executing it twice
- `cmd1.ExecuteNonQuery();`
- `Convert.ToString(cmd1.ExecuteScalar());`
You just need `ExecuteScalar` to insert and select:
decimal newID = (decimal) cmd1.ExecuteScalar();
Problem
I have the following Insert Command and I need to grab the Scope Identity for some order tracking later in the application ``` SqlCommand cmd1 = new SqlCommand("INSERT INTO [pharm_OrderID](UserID, RequestType, CreateDate) values (@UserID, @RequestType, @CreateDate); Select SCOPE_IDENTITY();", conn1); cmd1.CommandType = CommandType.Text; conn1.Open(); string strUserID = txtEmpID.Text; cmd1.Parameters.Add("@UserID", SqlDbType.NVarChar, 50); cmd1.Parameters["@UserID"].Value = strUserID; string strRequestType = ddlReturnType.SelectedValue; cmd1.Parameters.Add("@RequestType", SqlDbType.NVarChar, 50); cmd1.Parameters["@RequestType"].Value = strRequestType; string strCreateDate = lblOrderAttemptTime.Text; cmd1.Parameters.Add("@CreateDate", SqlDbType.NVarChar, 50); cmd1.Parameters["@CreateDate"].Value = strCreateDate; cmd1.ExecuteNonQuery(); string numScope = Convert.ToString(cmd1.ExecuteScalar()); lblOrderNum.Text = numScope; cmd1.Dispose(); conn1.Close(); conn1.Dispose(); ``` But why does it insert twice?