主要问题是我已经创建并填充了模型,因此我不想创建新模型。 Query方法使用模型进行比较,因此如果我将其传入,我需要在调用方法时找到引用它的方法。
但是如果我在switch方法中将它声明为引用变量,那么调用它,我得到一个错误“使用未分配的局部变量'UModel'”
如果我在方法之外声明它,我会遇到一个问题“非静态字段需要对象引用”
你能告诉我发生了什么以及可能如何修复它吗?
这是我的控制器,我在其中创建模型并传入OP变量:
public static void CompareLogin(User_LoginView Login_View)
{
// Creates a new oject of User_Model and populates it from the User_Controller.
User_Model UModel = new User_Model();
UModel.Name = screenName;
UModel.Pwd = screenPwd;
// Runs the Login Comparsion in the Database_Facade, and passes in the Read Operation variable.
new Database_Facade();
Database_Facade.Operation_Switch(OPREAD);
}
这是我的外观:
public static void Operation_Switch(int OP)
{
Database_MySQLQueryFunctions SqlQuery;
User_Model UModel;
PAC_Model PModel;
Cable_Model CModel;
switch (OP)
{
case 101:
SqlQuery = new Database_MySQLQueryFunctions();
SqlQuery.GetLoginAccess(UModel);
// Repopulates the Model to return the Access Level.
break;
case 102:
SqlQuery = new Database_MySQLQueryFunctions();
SqlQuery.SetLoginAccess(PModel);
break;
case 103:
SqlQuery = new Database_MySQLQueryFunctions();
SqlQuery.UpdateUser(CModel);
break;
}
以下是模型:
public class User_Model
{
public string Name { get; set; }
public string Pwd { get; set; }
public string ConfirmPwd { get; set; }
public int AccessLevel { get; set; }
public User_Model()
{
Name = null;
Pwd = null;
ConfirmPwd = null;
AccessLevel = 0;
}
}
答案 0 :(得分:0)
将UModel声明为静态变量(在方法之外),如:
public static User_Model UModel;
并更改
User_Model UModel = new User_Model();
在
UModel = new User_Model();
并删除
User_Model UModel;
来自Operation_Switch的
将UModel作为参数传递给Operation_Switch
改变
public static void Operation_Switch(int OP)
到
public static void Operation_Switch(int OP, User_Model UModel)
去除
User_Model UModel;
来自Operation_Switch并更改
Database_Facade.Operation_Switch(OPREAD);
在
Database_Facade.Operation_Switch(OPREAD, UModel);