2011-09-01 112 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对象? –

相关问题