- jwchapma
Hello,
I am trying to insert a new record and obtain the indentity of the newly created record. The code below works, however it generates two records instead of one. Any ideas why?
sqlConn.Open();
sqlCmd = new SqlCommand("INSERT INTO [tbl_vendor] ([vendor_name]) VALUES (@vendor_name) SELECT SCOPE_IDENTITY()", sqlConn);
sqlCmd.Parameters.Add(new SqlParameter("@vendor_name", SqlDbType.NVarChar, 100)).Value = companyname;
sqlCmd.ExecuteNonQuery();
int iCompany = Convert.ToInt32(sqlCmd.ExecuteScalar());
companyid = iCompany.ToString();
sqlConn.Close();
Thanks,
John Chapman
Hi first create and execute the insert statement. Next clear the parameters. Finally, call the select @@IDENTITY.
sqlCmd = new SqlCommand("INSERT INTO [tbl_vendor] ([vendor_name]) VALUES (@vendor_name) SELECT SCOPE_IDENTITY()", sqlConn);
sqlCmd.Parameters.Add(new SqlParameter("@vendor_name", SqlDbType.NVarChar, 100)).Value = companyname;
sqlConn.Open();
sqlCmd.ExecuteNonQuery();
sqlCmd.Parameters.Clear();
sqlCmd.CommandText = "SELECT @@IDENTITY";
int iCompany = Convert.ToInt32(sqlCmd.ExecuteScalar());
sqlConn.Close();
cheers,
Cameron