You should use try/catch/finally and not just try/catch. If you encounter an error then the connection and reader are never closed. If you use finally then regardless if there is an error or not the reader and connection will be closed. You will also need to declare your reader and connection objects above the try/catch/finally block. Like so...
SqlConnection conn = null;
SqlDataReader reader = null;
try
{
}
catch
{
MessageBox.Show("At Least 0 value can be save in the Gold Silver Cash Area", ex.Message);
}
finally
{
if(reader != null)
{
reader.Close();
}
if(conn != null)
{
conn.Close();
}
}
Also, close the reader before you attempt to make another connection.
if (reader != null && reader.HasRows)
{
MessageBox.Show("User Already Exists!!");
}
else
{
if(reader != null)
{
reader.Close();
}
SqlCommand cmd1 = new SqlCommand(query, conn);
cmd1.ExecuteNonQuery();
txtCustomerName.Clear();
txtAddress.Clear();
txtMobileNo.Clear();
MessageBox.Show("Values Save in DataBase");
}