Не существует в текущем контексте - PullRequest
1 голос
/ 24 февраля 2012

Как получается, что моя строка кода показывает ошибку

 var searchUser = from accnt_user in dbo.Accounts
                             where accnt_user == txtUser.Text && 
                             accnt_Pass == txtPassword.Text
                             select accnt_user;

Ошибка 2 Имя «accnt_Pass» не существует в текущем контексте C: \ Users \ John \ Documents \ visual studio 2010 \ Projects \ PAS \ PAS \ Login.cs 39 66 PAS

Ошибка 1 Имя 'dbo' не существует в текущем контексте C: \ Users \ John \ documents \ visual studio 2010 \ Projects \ PAS \ PAS \ Login.cs 38 49 PAS

Но я уже связался с ним своим текстом данных

DataClasses1DataContext myDbContext = new DataClasses1DataContext(dbPath);

И у My DataClasses1DataContext уже есть эта строка кода

[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Accounts")]
    public partial class Account : INotifyPropertyChanging, INotifyPropertyChanged

ПРИМЕЧАНИЕ. Я не добавил весь код в текстовый текст, поскольку он длинный

enter image description here

Ответы [ 2 ]

2 голосов
/ 24 февраля 2012

попробуйте так, как accnt_user это будет объект учетных записей, поэтому вам нужно получить доступ ко всем его членам с помощью . operatorr

var searchUser = from accnt_user in Accounts
                             where accnt_user.accnt_user== txtUser.Text && 
                             accnt_user.accnt_pass== txtPassword.Text
                             select accnt_user;
0 голосов
/ 25 февраля 2012

Вы не используете контекст в своем запросе. Кроме того, все имена столбцов должны начинаться с префикса, определенного для исходной таблицы или объединения (в отличие от SQL, где вы можете опустить префикс, если столбец уникален для набора таблиц или представлений в запросе).

Измените свой код, чтобы он выглядел так:

using(DataClasses1DataContext myDbContext = new DataClasses1DataContext(dbPath))
{
    var searchUser = from user in myDbContext.Accounts
                     where user.accnt_user == txtUser.Text && 
                     user.accnt_Pass == txtPassword.Text
                     select user;

    // do something with searchUser
}

Это по существу эквивалентно этому SQL:

select user.*

from dbo.Accounts user

where user.accnt_user = @user and user.accnt_pass = @pass
...