2012-04-15 3 views
3

У меня странная проблема с простым оператором SELECT, который я использую в своем приложении asp.net. Я работаю с MSSQL 2008.Невозможно вызвать методы на nvarchar

Это утверждение работает:

SelectSQL = "SELECT user_id, user_name, user_surname, user_code FROM Users WHERE user_group = '" + drop.SelectedItem.Value + "'"; 

однако, эта линия бросает

SelectSQL = "SELECT COUNT(DISTINCT Equations.eq_id) AS pocet_prikladu, Users.user_name, User.user_surname FROM Users LEFT JOIN Equations ON (Users.user_id = Equations.eq_user_id) WHERE Users.user_code = '" + drop.SelectedItem.Value + "' GROUP BY Users.user_id, Users.user_name, User.user_surname "; 

здесь больше кода, он останавливается "Невозможно вызвать методы на NVARCHAR." на последней строке

public void FillTable(Table tab, DropDownList drop)  //naplneni tabulky 
    { 
     SqlConnection pripojeni = new SqlConnection(connectionString); 
     string SelectSQL = ""; 
     if (action == "groups") 
     { 
      SelectSQL = "SELECT user_id, user_name, user_surname, user_code FROM Users WHERE user_group = '" + drop.SelectedItem.Value + "'"; 
     } 
     else 
     { 
      SelectSQL = "SELECT COUNT(DISTINCT Equations.eq_id) AS pocet_prikladu, Users.user_name, User.user_surname FROM Users LEFT JOIN Equations ON (Users.user_id = Equations.eq_user_id) WHERE Users.user_code = '" + drop.SelectedItem.Value + "' GROUP BY Users.user_id, Users.user_name, User.user_surname "; 
     } 
     try 
     { 
      SqlCommand prikaz = new SqlCommand(SelectSQL, pripojeni); 
      pripojeni.Open(); 
      SqlDataReader vysledky = prikaz.ExecuteReader(); 
+0

Можете ли вы опубликовать более полный пример кода, в то числе, как вы отправляете запрос в SQL? – jklemmack

+3

У вас есть опечатка - User.user_surname должен быть Users.user_surname –

+0

Спасибо Крису. Он работает сейчас. Еще один потраченный час, потраченный на поиск решения: D – polohy

ответ

4

Возможно, это пользователь как [пользователь]. Пользователь является зарезервированным ключевым словом.

Так [Пользователь] .user_surname и т.д.

Кроме того, как Крис говорит изменение опечатка User.user_surname к Users.user_surname.

Я думаю, неделимитированный [Пользователь] вопрос вызывает странную ошибку

+0

ОК, но почему первый SelectSQL работает без [пользователя]? – polohy

+0

Вы не используете пользователя. Вы используете пользователей, которые выглядят как опечатка во втором. Измените его для пользователей – GraemeMiller

+0

Chris прав: D – polohy

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