上期说过,登录界面功能比较简单,主要目的是实现:用户登录 + 修改密码 + 注册用户,三个功能。WinForm窗体的功能实现总体来说比较简单,大体来说只需要对工具箱中的控件进行拖拽,并添加点击事件,即可完成相应功能。下面来看具体如何实现。
1.实现三个功能所需要的控件
实现登录界面功能所需控件为:label、textbox、button、picturebox(可有可无,用它主要是想添加一些icon使界面更加漂亮些,但结果有些不尽人意)。
在对控件进行应用时,只需要在 Visual Studio 左侧工具箱处输入控件名称,点击搜索便可出现相应控件,之后鼠标左键点击住并拖拽到相应的Design界面上响应位置,控件则使用成功。
控件的属性设置:一般情况下,常常需要调整的属性有Text(显示文本设置)、BackColor(背景颜色)、FlatStyle(边线风格)、Font(字体设置)等。
具体功能的实现,需要进行其他操作方可实现,这个下面进行详细介绍。
2.登录界面的具体功能实现
(1)界面登录
系统对输入的账号密码进行核对,核对成功后跳转至主界面。
private void button2_Click(object sender, EventArgs e)
{
//textBox1为账号文本框的id
if (textBox1.Text.ToString() == "") {
MessageBox.Show("请输入账户");
return;
}
//在数据库中对需要登录的账号进行查询
string sql1 = "select * from app_user where user_name = '" + textBox1.Text.ToString() + "'";
//PostgreSqlHelper.OpenTable(sql1)__为自定义的一个函数,详细信息见下一段
DataTable dt = new DataTable();
dt = PostgreSqlHelper.OpenTable(sql1);
//对查找到的数据,进行判断
if (dt.Rows.Count == 0) {
MessageBox.Show("账户输入错误,请重新输入");
}
else {
if (dt.Rows[0]["login_name"].ToString() == textBox2.Text.ToString())
{
//跳转界面
Form2 updata = new Form2();
updata.ShowDialog();//ShowDialog:打开窗体并不能操作其他窗体
this.Close();
}
else {
MessageBox.Show("密码错误,请重新输入");
}
}
}
OpenTable(string SQLString)函数的代码如下:
public static DataTable OpenTable(string SQLString)
{
using (NpgsqlConnection connection = new NpgsqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
NpgsqlDataAdapter command = new NpgsqlDataAdapter(SQLString, connection);
command.Fill(ds);
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
finally
{
connection.Close();
}
if (ds != null && ds.Tables != null && ds.Tables.Count != 0)
return ds.Tables[0];
else
return null;
}
}
至此,简单的登录功能就实现了。
(2)注册账号
可在登录界面,进行账号的注册(新建账号)。具体代码实现如下:
//立即注册
private void button3_Click(object sender, EventArgs e)
{
string sql = "select user_key from app_user order by user_key desc";
DataTable add_data = new DataTable();
add_data = PostgreSqlHelper.OpenTable(sql);
//这里是为了设置一个用户不可改变的序号,先查询现存的最大序号,然后+1
int index = (int)add_data.Rows[0][0];
index = index+1;
Form3 add = new Form3(index.ToString());
add.ShowDialog();
}
(3)修改密码
这里的修改密码,需要在账号栏处输入正确的账号,然后以原密码正确为条件进行更改。(比较鸡肋)
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.ToString() == "") {
MessageBox.Show("请输入需要修改的账户");
return;
}
string sql1 = "select * from app_user where user_name = '" + textBox1.Text.ToString() + "'";
DataTable dt = new DataTable();
dt = PostgreSqlHelper.OpenTable(sql1);
string index1 = (string)dt.Rows[0][1];
string index2 = (string)dt.Rows[0][1];
if (dt.Rows.Count == 0)
{
MessageBox.Show("您输入的账户不存在,请重新输入");
}
else {
Form4 updata = new Form4(index1.ToString(), index1.ToString());
updata.ShowDialog();//ShowDialog:打开窗体并不能操作其他窗体
}
}
---------------------------------------------------------------------------------------------------------------------------------
至此,登录界面的功能就全部实现了。希望各位进行批评指正,广提建议!(评论区见)