public int AddEditCoach(DataSet ds) { int returnValue = 0; SqlConnection conn = new SqlConnection(); try { conn.ConnectionString = connString; conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.CommandText = "proc_insert_update_PAR_Coach"; cmd.CommandType = CommandType.StoredProcedure; cmd.Connection = conn; cmd.Parameters.Add(new SqlParameter("@Id", ds.Tables["PAR_Coach"].Rows[0]["Id"].ToString())); cmd.Parameters.Add(new SqlParameter("@User_Id", ds.Tables["PAR_Coach"].Rows[0]["User_Id"].ToString())); cmd.Parameters.Add(new SqlParameter("@Access_Id", ds.Tables["PAR_Coach"].Rows[0]["Access_ID"].ToString())); cmd.Parameters.Add(new SqlParameter("@Sport", ds.Tables["PAR_Coach"].Rows[0]["Sport"].ToString())); cmd.Parameters.Add(new SqlParameter("@First_Name", ds.Tables["PAR_Coach"].Rows[0]["First_Name"].ToString())); cmd.Parameters.Add(new SqlParameter("@Last_Name", ds.Tables["PAR_Coach"].Rows[0]["Last_Name"].ToString())); cmd.Parameters.Add(new SqlParameter("@Title", ds.Tables["PAR_Coach"].Rows[0]["Title"].ToString())); cmd.Parameters.Add(new SqlParameter("@Address1", ds.Tables["PAR_Coach"].Rows[0]["Address1"].ToString())); cmd.Parameters.Add(new SqlParameter("@Address2", ds.Tables["PAR_Coach"].Rows[0]["Address2"].ToString())); cmd.Parameters.Add(new SqlParameter("@City", ds.Tables["PAR_Coach"].Rows[0]["City"].ToString())); cmd.Parameters.Add(new SqlParameter("@State", ds.Tables["PAR_Coach"].Rows[0]["State"].ToString())); cmd.Parameters.Add(new SqlParameter("@Zip", ds.Tables["PAR_Coach"].Rows[0]["Zip"].ToString())); cmd.Parameters.Add(new SqlParameter("@Phone", ds.Tables["PAR_Coach"].Rows[0]["Phone"].ToString())); cmd.Parameters.Add(new SqlParameter("@Fax", ds.Tables["PAR_Coach"].Rows[0]["Fax"].ToString())); cmd.Parameters.Add(new SqlParameter("@School_ID", ds.Tables["PAR_Coach"].Rows[0]["School_ID"].ToString())); int rows = cmd.ExecuteNonQuery(); if (!cmd.Parameters["@Id"].Value.Equals(DBNull.Value)) returnValue = Convert.ToInt32(cmd.Parameters["@Id"].Value.ToString()); } catch (System.Exception ex) { //here deal with exception //then throw user friendly message to GUI //throw (new AtomicException(ex.Message, 0)); throw new Exception(ex.ToString()); } finally { conn.Close(); conn = null; } return returnValue; } ALTER PROCEDURE proc_insert_update_PAR_Coach ( @Id int, @User_Id varchar(20), @Access_Id int, @Sport varchar(20), @First_Name varchar(20), @Last_Name varchar(20), @Title varchar(20), @Address1 varchar(50), @Address2 varchar(50), @City varchar(20), @State varchar(2), @Zip varchar(5), @Phone varchar(15), @Fax varchar(15), @School_ID varchar(50) ) AS Begin UPDATE PAR_Coach SET Access_Id = @Access_Id, Sport = @Sport, First_Name = @First_Name, Last_Name = @Last_Name, Title = @Title, Address1 = @Address1, Address2 = @Address2, City = @City, State = @State, Zip = @Zip, Phone = @Phone, Fax = @Fax, School_ID = @School_ID WHERE [User_Id] = @User_Id if(@@ROWCOUNT<=0) BEGIN INSERT INTO PAR_Coach ([User_Id],Access_Id,Sport,First_Name,Last_Name,Title,Address1,Address2,City,State,Zip,Phone,Fax,School_ID) VALUES (@User_Id,@Access_Id,@Sport,@First_Name,@Title,@Last_Name,@Address1,@Address2,@City,@State,@Zip,@Phone,@Fax,@School_ID) END End