2011-09-01 155 views
0

我工作的一個項目,其中我把一些VB.Net類庫C#庫(主要是學習C#語法)。我的問題是我無法使Save函數工作。保存對象到數據庫

我建設我的對象與此:

public static StoreEmployee Create(string LoginId) 
    { 
     var emp = new StoreEmployee(); 
     using (var dt = DAC.ExecuteDataTable("usp_ActiveEmployeeSelect", 
      DAC.Parameter(CN_LoginId, LoginId))) 
     { 
      emp.StoreId = Convert.ToString(dt.Rows[0][CN_StoreId]); 
      emp.FirstName = Convert.ToString(dt.Rows[0][CN_FirstName]); 
      emp.LastName = Convert.ToString(dt.Rows[0][CN_LastName]); 
      emp.UserName = Convert.ToString(dt.Rows[0][CN_UserName]); 
      emp.Role = Convert.ToString(dt.Rows[0][CN_Role]); 
      emp.Description = Convert.ToString(dt.Rows[0][CN_Description]); 
     } 
     return emp; 
    } 

然後用這個

private static void FillStoreEmployeeObject(string empLoginId) 
    { 
     StoreEmployee.Create(empLoginId); 
    } 

創建它,然後嘗試使用此保存功能保存回對象數據庫:

public override Boolean Save(string LoginId) 
    { 
     try 
     { 
      int retVal = DAC.ExecuteNonQuery("usp_ActiveEmployeeSave", 
       DAC.Parameter(CN_LoginId, LoginId), 
       DAC.Parameter(CN_StoreId, StoreId), 
       DAC.Parameter(CN_FirstName, FirstName), 
       DAC.Parameter(CN_UserName, UserName), 
       DAC.Parameter(CN_Role, Role), 
       DAC.Parameter(CN_Description, Description)); 
      return true; 
     } 
     catch 
     { 
      return false; 
     } 
    } 

我沒有這應該是一個語法警告,但我已經修改了很多次,所以我想馬在我繼續之前,確定這是正確的。這看起來是否正確?順便說一句,我試圖調用保存功能與此

StoreEmployee.Save(Convert.ToString(登錄))

這給了我這個錯誤的對象引用需要非靜態字段,方法或屬性但是,當我將我的函數標記爲static時,我的Create函數顯示錯誤,因此我很困惑。

回答

2

Save實例方法

隨着錯誤消息狀態,你需要調用它的StoreEmployee現有實例(如Create返回的一個)。

+0

我修改了原來的問題,並加入我的呼叫來創建功能,因爲現在我想知道如果我的問題的一部分範圍。由此我的意思是問我的問題是,StoreEmployee.Save()沒有訪問StoreEmployee對象,因爲我做錯了什麼? –

+2

**你需要調用'Save'上StoreEmployee'的'的_instance_ ** – SLaks

+0

我不是如何做到真正的清晰。我想我明白你在說什麼,但是我不知道如何在創建StoreEmployee實例之後獲得它。我可以創建一個表單級別的變量,只要我需要它就可以保存整個StoreEmployee對象? –

相關問題