2015-12-09 3 views
-1
public class users 
{ 
    public string id { get; set; } 
    public string username { get; set; } 
    public string password { get; set; } 
    public string email { get; set; } 
    public string country { get; set; } 
} 

public class IDaccesscontrol 
{ 
    public static List<users> GetAllEmployees() 
    { 
     List<users> listEmployees = new List<users>(); 

     string CS = ConfigurationManager.ConnectionStrings["User_KarlConnectionString"].ConnectionString; 
     using (SqlConnection con = new SqlConnection(CS)) 
     { 
      SqlCommand cmd = new SqlCommand("Select from user_karl", con); 
      con.Open(); 
      SqlDataReader rdr = cmd.ExecuteReader(); 
      while (rdr.Read()) 
      { 
       users users = new users(); 
       users.id = rdr["id"].ToString(); 
       users.username = rdr["username"].ToString(); 
       users.password = rdr["password"].ToString(); 
       users.email = rdr["email"].ToString(); 
       users.country = rdr["country"].ToString(); 

       listEmployees.Add(users); 
       con.Close(); 
      } 
     } 

     return listEmployees; 
    } 
} 

}Сведения об исключении: System.Data.SqlClient.SqlException: Неправильный синтаксис около ключевого слова 'от'

ответ

2

Попробуйте select * from user_karl.

У вас просто синтаксическая ошибка в самой инструкции SQL. C# не может выбрать это во время компиляции, чтобы получить исключение во время выполнения.

Если вы не можете найти эти синтаксические ошибки, иногда это может помочь скопировать/вставить инструкцию SQL в SQL Server Management Studio и посмотреть, как она там говорит. Чтобы получить точное утверждение, отправленное на сервер вашим приложением, используйте SQL Profiler (меню «Сервис» в SQL Server Management Studio).

-1

В вашем коде есть ошибки, а не только sql-запрос. Измените код на следующее:

public class users 
{ 
public string id { get; set; } 
public string username { get; set; } 
public string password { get; set; } 
public string email { get; set; } 
public string country { get; set; } 
} 

public class IDaccesscontrol 
{ 
public static List<users> GetAllEmployees() 
{ 
    List<users> listEmployees = new List<users>(); 

    string CS = ConfigurationManager.ConnectionStrings["User_KarlConnectionString"].ConnectionString; 
    using (SqlConnection con = new SqlConnection(CS)) 
    { 
     SqlCommand cmd = new SqlCommand("Select * from user_karl", con); //when selecting something from a database, you have to appoint exactly what you want to eject 
//otherwise if will occur an error as you had. * means we want to eject all columns from the table 
     con.Open(); 
     SqlDataReader rdr = cmd.ExecuteReader(); 
     while (rdr.Read()) 
     { 
      users users = new users(); 
      users.id = rdr["id"].ToString(); 
      users.username = rdr["username"].ToString(); 
      users.password = rdr["password"].ToString(); 
      users.email = rdr["email"].ToString(); 
      users.country = rdr["country"].ToString(); 

      listEmployees.Add(users); 
      //con.Close(); you are in the while loop, so you can't close connection until you will not finish your work with data 
     } 
      con.Close(); //working with your reader has been finished, so we can close connection 
    } 

    return listEmployees; 
} 

}

+0

Когда вы предоставляете ответьте, вы должны объяснить *, что * ваш код делает по-другому и * почему *. – mason

0

Правильный синтаксис Select * от user_karl .В приведенном выше коде вы пропустили вверх звезду symbol.It получить всю информацию в таблице " user_karl»

Изменить эту строку в коде:

SqlCommand cmd = new SqlCommand("Select * from user_karl", con); 
Смежные вопросы