思路:
1.查询注册用户ID是否已存在
2.向数据库插入用户信息
代码:
U层:
private void btnOK_Click(object sender, EventArgs e)
{
Entity.UserInfo user = new Entity.UserInfo();
user.UserID = txtUserID.Text.Trim();
user.PassWord = txtPassWord.Text; //user.PassWord = txtPassWord.Text(); //Text后面没有(),
user.UserName = txtUserName.Text.Trim();
user.UserLevel = comboUserLevel.Text.Trim();
//判断两次输入密码是否一致
if (txtPassWord.Text != txtPassWord2.Text)
{
MessageBox.Show("两次输入密码不一致,请重新输入", "温馨提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
txtPassWord.Text = "";
txtPassWord2.Text = "";
}
else
{
//查询注册ID是否重复
Boolean flag = false;
Facade.AddUserFacade faca = new Facade.AddUserFacade();
flag = faca.InquUser(user);
if (flag == false)
{
MessageBox.Show("该账号ID已经存在,请重新输入注册信息!");
txtUserID.Text = "";
}
else
{
//无重复ID,可添加
flag = faca.AddUser(user);
MessageBox.Show("用户ID:" + txtUserID.Text + " 添加成功");
}
}
Facade层:
public class AddUserFacade
{
//添加用户
public Boolean AddUser(Entity.UserInfo user)
{
bool flag;
BLL.AddUserBLL adduserBLL = new BLL.AddUserBLL();
flag = adduserBLL.AddUser(user);
return flag;
}
//查询用户
public Boolean InquUser(Entity.UserInfo user)
{
bool flag;
BLL.AddUserBLL adduserBLL = new BLL.AddUserBLL();
flag = adduserBLL.InquUser(user);
return flag;
}
}
BLL层:
public class AddUserBLL
{
//添加用户
public bool AddUser(Entity.UserInfo UserInfo)
{
Factory.AddUserFactory fact = new Factory.AddUserFactory();
IDAL.AddUserIDAL idal = fact.AddUser();
DataTable table = idal.addUser(UserInfo);
bool flag;
if (table.Rows.Count != 0)
{
flag = false;
}
else
{
flag = true;
}
return flag;
}
//查询用户
public bool InquUser(Entity.UserInfo UserInfo)
{
Factory.AddUserFactory fact = new Factory.AddUserFactory();
IDAL.AddUserIDAL idal = fact.InquUser();
DataTable table = idal.inquUser(UserInfo);
bool flag;
//返回的DataTable类型,如果它的行数等于0,说明该账号无重复,可添加
if (table.Rows.Count == 0)
{
flag = true;
}
else
{
flag = false;
}
return flag;
}
}
Factory层:
public class AddUserFactory
{
private static readonly string AssemblyName = "DAL";
private static readonly string db = ConfigurationManager.AppSettings["DB"];
//添加用户
public IDAL.AddUserIDAL AddUser()
{
string ClassName = AssemblyName + "." + db + "User";
IDAL.AddUserIDAL idal = (IDAL.AddUserIDAL)Assembly.Load(AssemblyName).CreateInstance(ClassName);
return idal;
}
//查询用户
public IDAL.AddUserIDAL InquUser()
{
string ClassName = AssemblyName + "." + db + "User";
IDAL.AddUserIDAL idal = (IDAL.AddUserIDAL)Assembly.Load(AssemblyName).CreateInstance(ClassName);
return idal;
}
}
DAL层:
//添加用户
public class SqlserverUser:IDAL.AddUserIDAL
{
//插入注册用户信息
public DataTable addUser(Entity.UserInfo UserInfo)
{
SqlHealper Healper = new SqlHealper();
SqlParameter[] Params = { new SqlParameter("@UserID", UserInfo.UserID),
new SqlParameter("@PassWord", UserInfo.PassWord),
new SqlParameter("@UserLevel",UserInfo.UserLevel),
new SqlParameter ("@UserName",UserInfo .UserName ),
// new SqlParameter ("@Head",UserInfo.Head) //Head为当前登录管理员的UserID
};
string sql = "insert into User_Info(UserID,UserPwd,UserName,Level)values(@UserID,@PassWord,@UserName,@UserLevel)";
DataTable dt = Healper.ExecuteQuery(sql, Params, CommandType.Text);
return dt;
}
//查询注册用户信息是否重复
public DataTable inquUser(Entity.UserInfo UserInfo)
{
SqlHealper Healper = new SqlHealper();
SqlParameter[] Params = { new SqlParameter("@UserID", UserInfo.UserID) };
string sql = "select UserID from User_Info where UserID=@UserID";
DataTable dt = Healper.ExecuteQuery(sql, Params, CommandType.Text);
return dt;
}
}
IDAL层:
//接口 添加用户窗体
public interface AddUserIDAL
{
DataTable addUser(Entity.UserInfo UserInfo);
DataTable inquUser(Entity.UserInfo UserInfo);
}
Entity层:
public class UserInfo
{
//定义 用户ID 字段
private string userid;
public string UserID
{
get { return userid; }
set { userid = value; }
}
//定义 密码 字段
private string password;
public string PassWord
{
get { return password; }
set { password = value; }
}
//定义 用户姓名 字段
private string username;
public string UserName
{
get { return username; }
set { username = value; }
}
//定义 用户级别 字段
private string userlevel;
public string UserLevel
{
get { return userlevel; }
set { userlevel = value; }
}
总算是成功敲出了一个窗体呐,虽然耗时有点久,不过对于其中的跳转关系还是熟悉了不少呐。其中入坑多次,留待下次总结啦。
感谢您的阅读~