2012-02-24 66 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

相關問題