一、类文件的编写及使用。
可以单独建立一个类文件(使用记事本),然后包含在项目中,使用时加上该类的命名空间,就可以使用这个类了。如何在一个项目里包含一个类文件?
1.在项目里新建一个文件夹;
2.将类文件放在这个文件夹里;
3.在vs界面的解决方案资源管理器里,点击“显示全部文件”按钮,然后选中这些文件,右击—>”包含在项目里”;
4.在项目的其他地方引用命名空间后,就可以使用这些类了。
二、登录窗口的制作
我们可以借助一个类文件生成器(Code Smith),帮助我们制作需要的类,下面的是使用Code Smith连接数据库的表后,根据模板生成的类。
点击登陆
//点击登陆按钮 private void button1_Click(object sender, EventArgs e) { string userName = textUser.Text; string PWD = textPWD.Text; //调用方法,访问数据库,核对数据 LoginData data= new LoginDA().Select(userName ,PWD); //如果访问到数据,弹出主窗口 if (data != null) { Main f = new Main(); f.Show(); } else { MessageBox.Show("登录失败"); } }
三、捕获异常
这是一个类文件里的查询数据方法,
把可能出现问题的步骤放在try里面,如果有异常(比如,连接数据库出现网络问题),进入catch,我们可以选择抛出此异常或其他操作。finally里面是不受异常影响,总是执行的语句。
//根据输入的用户名、密码访问数据库 public LoginData Select(string userName,string PWD) { LoginData data = null; _Cmd.CommandText = "select * from login where userName = @userName and userPwd=@userPwd"; _Cmd.Parameters.Clear(); _Cmd.Parameters.AddWithValue("@userName", userName); _Cmd.Parameters.AddWithValue("@userPwd", PWD); try { _Conn.Open(); SqlDataReader dr = _Cmd.ExecuteReader(); while (dr.Read()) { data = new LoginData(); data.UserName = (String)dr["userName"]; data.UserPwd = (String)dr["userPwd"]; data.UserIdentity = (String)dr["userIdentity"]; } dr.Close(); dr.Dispose(); } catch (Exception ex) { throw ex; } finally { _Conn.Close(); _Cmd.Dispose(); _Conn.Dispose(); } return data; }
下面是关闭数据库服务后,调用上面方法的结果(抛出异常)
三、隐藏登录窗口
if (data != null) { Main f = new Main(); this.Visible = false;//设置登录窗口不可见 this.Owner = f;//设置为main窗口的子窗口,main窗口关后,登录窗口也跟着关闭 f.WindowState = FormWindowState.Maximized;//登录后,主窗口最大化 f.Show(); }
四、在主窗口实现“欢迎您,xxx”
效果图
代码:
重写Main窗口的构造函数
创建Main窗口时,将用户名传给构造函数