What am I doing wrong? I am trying to verify that a user does not exist. I cannot figure out how to send @email1 or @0. I tried it several ways. I can get it to work when I hard code the WHERE CLAUSE. For example, an email I know exists is doug@fresh.com. This works: "var userCheck = "SELECT * FROM USR WHERE EMAIL = 'doug@fresh.com'".Count()
These do not work: I have tried var userCheck = "SELECT * FROM USR WHERE EMAIL = " +email1.Count();
and "var userCheck = "SELECT * FROM USR WHERE EMAIL = @0".Count()
Do I have to pass email1
as a parameter???
ASP.NET- Razor:
@{
Page.Title = "Register";
var minPass = 2;
var maxPass = 100;
var email1 = "";
var pass1 = "";
var db = Database.Open("Resume");
var userCheck = "SELECT * FROM USR WHERE EMAIL = " +email1;
var userInsert = "INSERT INTO USR (EMAIL, PSWD) VALUES (@0, @1)";
if(IsPost) {
email1 = Request.Form["email1"];
pass1 = Request.Form["pass1"];
db.Execute(userInsert, email1, pass1);
Response.Redirect("~/Default");
}
}
Javascript:
var error = "";
var email1 = document.getElementById('em100').value;
var email2 = document.getElementById('em101').value;
var pass1 = document.getElementById('pw100').value;
var pass2 = document.getElementById('pw101').value;
if (@userCheck > 0) error += "</br>Email already exists."; // ?????????????????
if (!document.getElementById('em100').checkValidity()) error += "</br>Emails are not valid.";
if (email1 !== email2) error += "</br>Emails do not match.";
if (pass1 !== pass2) error += "</br>Passwords do not match.";
if (pass1.length < minPass || pass1.length > maxPass) error += "</br>Password must be minPass - maxPass characters.";
I want to comment that my approach was entirely wrong.
I am no longer using Javascript for validation, but only ASP.NET Razor.
For those who are struggling with a similar thing, below is my solution:
Be sure to include
WebSecurity.InitializeDatabaseConnection("ResumeLink", "UserProfile", "UserId", "Email", true);