2013-10-09 3 views
-5

Я получаю в моем коде на SqlException:Неправильный синтаксис около 'MatricNO'

Неправильный синтаксис около 'MatricNO'

Вот код:

public static StudentDetail GetStudent(string MatricNO) 
{ 
    //Calling on the connection class and get connection method 
    SqlConnection connection = ConnectionClass.GetConnection(); 
    //Sql select statement that reads from the database 
    string selectStatement = "SELECT MatricNO,Faculty,Department,Course,FirstName,MiddleName,LastName" + 
          "FROM StudentInfo" + 
          "WHERE [email protected]"; 
    SqlCommand selectCommand=new SqlCommand(selectStatement,connection); 
    selectCommand.Parameters.AddWithValue("@MatricNO", MatricNO); 

    try 
    { 
     connection.Open(); 
     SqlDataReader reader = selectCommand.ExecuteReader(CommandBehavior.SingleRow); 
     if(reader.Read()) 
     { 
      //Read the database information into the StudentDetail Class 
      StudentDetail studentDetail=new StudentDetail(); 
      studentDetail.Studentmatricno = reader["MatricNO"].ToString(); 
      studentDetail.Faculty = reader["Faculty"].ToString(); 
      studentDetail.Dept = reader["Department"].ToString(); 
      studentDetail.Course = reader["Course"].ToString(); 
      studentDetail.Firstname = reader["FirstName"].ToString(); 
      studentDetail.Middlename = reader["MiddleName"].ToString(); 
      studentDetail.Surname = reader["LastName"].ToString(); 
      return studentDetail; //return all that has been read to the student detail class 
     } 
     else 
     { 
      // return null if queried record does not exist 
      return null; 
     } 

    } 
    catch (SqlException ex) 
    { 

     throw ex; 
    } 
    finally 
    { 
     connection.Close(); 
    } 
} 

Может кто-нибудь поможет мне решить эту проблему?

+0

Какова ценность 'selectStatement'? – Arran

ответ

1

Ваш SQL запрос необходим пробел после списка поля и таблицы имя:

string selectStatement = 
    "SELECT MatricNO,Faculty,Department,Course,FirstName,MiddleName,LastName " + 
    "FROM StudentInfo " +    
    "WHERE [email protected]"; 

Вы также можете использовать дословный строковый литерал:

string selectStatement = 
    @"SELECT MatricNO,Faculty,Department,Course,FirstName,MiddleName,LastName 
     FROM StudentInfo   
     WHERE [email protected]"; 
1

Вам нужно пространство между FROM и SELECT и FROM и WHERE статья

string selectStatement = "SELECT MatricNO,Faculty,Department,Course,FirstName,MiddleName,LastName" + 
          " FROM StudentInfo" + 
          " WHERE [email protected]"; 

Его всегда лучше посмотреть на сгенерированный SQL из конкатенации строк и попробовать его непосредственно в БД.

Смежные вопросы