If the project has more than a single web page than that's scale enough for me. I cannot see any valid reason for using Response.Write aside from doing some lazy debugging (as I sometimes do).
I would put most of the ADO2.7 logic/philosophy on a shelf when moving to ADO.NET.
Although I don't believe too much in Databinding controls, your scenario warrants its' use.
Before your insert use the ExecuteScalar of the command object with something like this.
Select Count(*) from Clientes Where email = '" & frmemail.Text & "'"
If the return is 0 then go ahead and insert otherwise do not continue with the insert.
I find the best way to place controls on the fly is to use Table/TR/TD tags combined with Styles, whether the styles are in-line or in a CSS file that's up to you.
You can achieve this with user controls or templating.
Download this file http://www.bassicsoftware.com/popup.aspx?b_id=157
To view the results: the pages on my site are derived from a base class (template) http://www.bassicsoftware.com, you will notice that the entire page reloads as I'm not using frames.
I hear that frames on a page keep the "content" page's keywords from being found by search engines.
That's correct.
Also, there are no ASP.NET frames, these frames are html frames, it's just a template that VS uses.
When you select adding a new page/form to an asp.net project you can choose Framed HML page from the template.
You can use no postback on pages, lookup @page directive attributes.