将对象保存回数据库

时间:2011-09-01 14:05:03

标签: c# database oop

我正在开发一个项目,我将一些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;
        }
    }

我没有得到语法警告,但我已经修改了很多次,所以我想确保在我继续之前这是正确的。这看起来是否正确?顺便说一下,我试图用这个

调用Save函数

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

这给了我这个错误非静态字段,方法或属性需要一个对象引用但是当我将我的函数标记为静态时,我的Create函数显示错误,所以我很困惑

1 个答案:

答案 0 :(得分:2)

Save实例方法

正如错误消息所述,您需要在StoreEmployee的现有实例(例如Create返回的实例)上调用它。