编辑:问题重建。
好的,我已经重新审视了我的get和set方法,但我仍然不清楚它是如何工作的。
我想要实现的是模型由Controller填充,从它从表单中获取的值。然后将其发送到Db_Facade,它比较uName和uPwd,如果它们相等则返回ACCESS,它将被设置为整个程序范围。
我不知道get和set声明是否正确完成,或者它们是否可以捆绑在一起(如果这可能会很好,因为我会将它用于更大的数据集合),而我我很确定我也把它们误实了。
如果您能提供帮助,我对Accessors的了解非常有限。
这是我的Controller中的比较登录方法:
public static void Compare_Login(User_Login_View Login_View)
{
User_Model getACCESS = new User_Model(); // Creates a new oject of User_Model
getACCESS.Name = Login_View.txtUsername.Text; //Populates the Model from the Login View
getACCESS.Pwd = Login_View.txtPassword.Text;
if (getACCESS.ACCESSLEVEL > 0)
{
Login_View.Close();
}
else
{
Login_View.lblError.Visible = true;
}
Login_View.Menu.SetMenuView();
}
这是我的模特:
public class User_Model
{
public string Name
{
get
{
return Db_Facade.uName;
}
set
{
Db_Facade.uName = value;
}
}
public string Pwd
{
get
{
return Db_Facade.uPwd;
}
set
{
Db_Facade.uPwd = value;
}
}
public int ACCESSLEVEL
{
get
{
return Db_Facade.ACCESS;
}
set
{
Db_Facade.ACCESS = value;
}
}
}
这是虚拟数据库比较:
class Db_Facade
{
public static string uName;
public static string uPwd;
public static string cPwd;
public static int ACCESS;
public static void getLoginACCESS()
{
uName = "paul";
uPwd = "pwd";
ACCESS = 1;
/* I get a "getACCESS does not exist" error here
if (uName == getACCESS.Name && uPwd == getACCESS.Pwd)
{
getACCESS.ACCESSLEVEL = ACCESS;
}
else
{
getACCESS.ACCESSLEVEL = 0;
}
*/
}
}
我不知道是否需要,但这是我的观点
public partial class User_Login_View : Form
{
public Menu_View Menu { get; set; }
public User_Login_View()
{
InitializeComponent();
}
private void btnLogin_Click(object sender, EventArgs e)
{
User_Controller.Compare_Login(this);
}
}
答案 0 :(得分:0)
2个问题/提示
1。)你在哪里打电话给getLoginACCESS()
?
2.。)为什么您认为Db_Facade
能够从您的班级getACCESS
访问User_Controller
?
解决方案是将您的getLoginACCESS()
转移到getLoginACCESS(User_Model getACCESS)
,然后在您的Compare_Login(User_Login_View Login_View)
中将其称为if
Db_Facade.etLoginACCESS(getACCESS);