2017-06-13 2 views
1

Ich habe ein Projekt in der Schule und und ich muss meine Registrierungsseite mit einer Datenbank verbinden. Ich habe diesen Code:Falsche Syntax in der Nähe des Schlüsselwortes "hinzufügen"

if (Request.Form["submit"] != null) 
{ 
    string fName = Request.Form["fName"]; 
    string lName = Request.Form["lName"]; 
    string Passwod = Request.Form["Passwod"]; 
    string email = Request.Form["email"]; 
    string add = Request.Form["add"]; 

    string RegStatus; 

    if ((fName == "") || (lName == "") || (Passwod == "") || (email == "") || (add == "")) 
    { 
     RegStatus = ("missing data or wrong data"); 
    } 
    else 
    { 
     string selectQuery = "SELECT * FROM " + "[Users]"; 
     selectQuery += " WHERE "; 
     selectQuery += " email = '" + Request.Form["email"] + "'"; 

     if (MyAdoHelper.IsExist(selectQuery)) 
     { 
      RegStatus = ("email does not exists"); 
     } 
     else 
     { 
      string insertQuery = "INSERT INTO [Users] (fName,lName,Passwod, email,add) VALUES ('"; 
      insertQuery += fName + "', '" + lName +"','" + Passwod + "', '" + email + "','" + add +"')"; 
      Response.Write(insertQuery); 
      MyAdoHelper.DoQuery(insertQuery); 
      RegStatus = ("Registeration was successful "); 
     } 
    } 

    Response.Write(RegStatus); 
    Response.End(); 
} 

Die Fehler, die ich erhalten, nachdem die Daten (nach Laufen) Füllung ist:

System.Data.SqlClient.SqlException: Incorrect syntax near the keyword 'add'.

Quelle Fehler:

public static void DoQuery(string sql) 
    { 
     SqlConnection conn = ConnectToDb(); 
     conn.Open(); 
     SqlCommand com = new SqlCommand(sql, conn); 
     com.ExecuteNonQuery(); //* it says the error is in this line. //* 
     com.Dispose(); 
     conn.Close(); 
    } 
+3

Wenn Sie SQL lernen, lernen zu nutzen parametrisierte Abfragen. Mehre Query-Strings nicht. Das kann zu Syntaxfehlern und SQL-Injection-Schwachstellen führen. –

Antwort

3

add ist ein Schlüsselwort auf SQL . Wenn Sie ein Feld wie folgt benannt haben, müssen Sie Klammern verwenden:

INSERT INTO [Users] (fName,lName,Passwod, email,[add]) VALUES... 

Auch, wie bereits kommentiert, ist es sehr wichtig ist, Parameter zu verwenden und nicht die String-Verkettung:

+0

ty man. funktioniert perfekt! – Nyrre

Verwandte Themen