2012-02-24 67 views
1

我不明白这是为什么了“DBO”在此查询的名称“在这里插入名称”并不在当前的背景下存在

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

显示此错误

“这个名字“ DBO”并不在当前的背景下存在”

但是当我删除单词‘DBO’这表明我这个错误

帐户的名称并没有在目前的情况下存在。

这里是我的表enter image description here

和我DataClasssesContext里面我有这个

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

     private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); 

     private int _accnt_ID; 

     private string _accnt_User; 

     private string _accnt_Pass; 

     private string _accnt_Position; 

    #region Extensibility Method Definitions 
    partial void OnLoaded(); 
    partial void OnValidate(System.Data.Linq.ChangeAction action); 
    partial void OnCreated(); 
    partial void Onaccnt_IDChanging(int value); 
    partial void Onaccnt_IDChanged(); 
    partial void Onaccnt_UserChanging(string value); 
    partial void Onaccnt_UserChanged(); 
    partial void Onaccnt_PassChanging(string value); 
    partial void Onaccnt_PassChanged(); 
    partial void Onaccnt_PositionChanging(string value); 
    partial void Onaccnt_PositionChanged(); 
    #endregion 

     public Account() 
     { 
      OnCreated(); 
     } 

     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_accnt_ID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)] 
     public int accnt_ID 
     { 
      get 
      { 
       return this._accnt_ID; 
      } 
      set 
      { 
       if ((this._accnt_ID != value)) 
       { 
        this.Onaccnt_IDChanging(value); 
        this.SendPropertyChanging(); 
        this._accnt_ID = value; 
        this.SendPropertyChanged("accnt_ID"); 
        this.Onaccnt_IDChanged(); 
       } 
      } 
     } 

我没有张贴我所有的代码在DataContext的,因为它是很长。

+0

您是否在当前的方法或类中声明了一个名为'dbo'的变量或字段?因为错误告诉你,你没有。 – 2012-02-24 04:41:07

+0

是否这样? DataClasses1DataContext myDbContext = new DataClasses1DataContext(dbPath); – user962206 2012-02-24 04:42:06

+0

偏离主题,但我担心你可能将密码作为纯文本存储在数据库中。这不是特别安全。帮你一个忙,研究安全的存储技术。 – 2012-02-24 05:01:19

回答

5

该错误正在告诉你,你需要知道的是,名称dbo不存在。没有可在该行代码中访问的变量,字段或静态类,因此编译器告诉您该名称在当前上下文中不存在。

例如,给定此类和方法定义

class Foo 
{ 
    public void Frob() 
    { 
     Console.WriteLine(bar); // bar does not exist! 
    } 
} 

bar是指既不是局部变量或类字段,并且将导致在你所观察到的同样的错误。

关于您的特定代码,您对该问题的评论表明您有一个DataClasses1DataContext类的实例。这很可能是您在查询中需要使用的。

using (var myDbContext = new DataClasses1DataContext()) 
{ 
    var query = from user in myDbContext.Accounts 
       where user.Blah == whatever 
       select user; 

    // use query results 
} 
+0

傻我忘了dbContext>。<谢谢你们! – user962206 2012-02-24 05:00:05

相关问题