我正在开发一个项目,我将一些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函数显示错误,所以我很困惑
答案 0 :(得分:2)
Save
是实例方法。
正如错误消息所述,您需要在StoreEmployee
的现有实例(例如Create
返回的实例)上调用它。