1. 概述
本文使用C#语言,SQLServer数据库,实现用户信息增加、删除、修改、查询功能。其中展示用户信息使用了DataGridView控件。
2. 数据库设计
数据库UserManageProjectDb,含user表,表结构如下:
USE [UserManageProjectDb] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[user]( [id] [int] IDENTITY(1,1) NOT NULL, [name] [nvarchar](50) NULL, [sex] [nvarchar](50) NULL, [age] [int] NULL, [password] [nvarchar](50) NULL, [idNum] [nvarchar](50) NULL ) ON [PRIMARY] GO
3. 项目开发
3.1 界面设计
设计如下图
3.2 定义数据库访问字符串、数据库连接
因为需要访问SQL Server数据库,所以定义类变量,存储访问字符串和数据库连接:
protected static String strCon = "Data Source=127.0.0.1;Initial Catalog=UserManageProjectDb;Integrated Security=False;User ID=sa;Password=123456";
protected SqlConnection con = new SqlConnection(strCon);
1
2
3.2 查询用户
当点击查询用户按钮时,从数据库中查出用户信息,显示到数据表格中:
// 查询用户
private void buttonQuery_Click(object sender, EventArgs e)
{
// 打开数据库连接
con.Open();
// 定义操作数据库的sql语句
string sql = "select * from [user]";
// 形成操作命令
SqlCommand cmd = new SqlCommand(sql, con);
// 执行命令
SqlDataReader sdr = cmd.ExecuteReader();
// 读取结果赋给数据源
BindingSource bs = new BindingSource();
bs.DataSource = sdr;
// 显示
this.dataGridView1.DataSource = bs;
// 修改列标题
this.dataGridView1.Columns["id"].HeaderText = "编号";
this.dataGridView1.Columns["name"].HeaderText = "姓名";
this.dataGridView1.Columns["sex"].HeaderText = "性别";
this.dataGridView1.Columns["age"].HeaderText = "年龄";
this.dataGridView1.Columns["password"].HeaderText = "密码";
this.dataGridView1.Columns["idNum"].HeaderText = "身份证号";
con.Close();
}
3.3 新增用户
当点击新增用户时,将文本框中输入的用户信息,新增到数据库中,然后再执行一次查询,以便在界面上加载最新用户列表。
// 新增用户
private void buttonAdd_Click(object sender, EventArgs e)
{
// 打开连接
con.Open();
// 定义sql语句
string sql = "insert into [user] (name,sex,age,password,idNum)" +
"values('"+textName.Text+"','"+textSex.Text+"','"+textAge.Text+"','"+
textPassword.Text+"','"+textIdNum.Text+"')";
// 创建命令
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
// 及时关闭连接
con.Close();
// 接着立即查询
this.buttonQuery_Click(sender,e);
}
3.4 删除用户
点击删除按钮时,删除选中行对应的用户数据,然后刷新。
// 删除数据
private void buttonRemove_Click(object sender, EventArgs e)
{
string id=this.dataGridView1.SelectedRows[0].Cells["id"].Value.ToString();
// 打开连接
con.Open();
// 定义sql语句
string sql = "delete from [user] where id="+id;
// 创建命令
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
// 及时关闭连接
con.Close();
// 接着立即查询
this.buttonQuery_Click(sender, e);
}
3.5 修改用户
首先,选中用户信息发生变化时,应将用户信息带入下面的文本框:
// 选中行发生变化时候
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
if (this.dataGridView1.SelectedRows.Count == 0)
return;
string id = this.dataGridView1.SelectedRows[0].Cells["id"].Value.ToString();
string name = this.dataGridView1.SelectedRows[0].Cells["name"].Value.ToString();
string sex = this.dataGridView1.SelectedRows[0].Cells["sex"].Value.ToString();
string age= this.dataGridView1.SelectedRows[0].Cells["age"].Value.ToString();
string password = this.dataGridView1.SelectedRows[0].Cells["password"].Value.ToString();
string idNum = this.dataGridView1.SelectedRows[0].Cells["idNum"].Value.ToString();
textName.Text = name;
textSex.Text = sex;
textAge.Text = age;
textPassword.Text = password;
textIdNum.Text = idNum;
}
然后点击修改后,将文本框内容,提交到选中行对应的记录中。
// 修改用户
private void buttonEdit_Click(object sender, EventArgs e)
{
string id = this.dataGridView1.SelectedRows[0].Cells["id"].Value.ToString();
string name = textName.Text;
string sex = textSex.Text;
string age = textAge.Text;
string password = textPassword.Text;
string idNum = textIdNum.Text;
// 打开连接
con.Open();
// 定义sql语句
string sql = "update [user] set name='"+name+"',sex='"+sex+"',age='"+age+"',password='"+password
+"',idNum='"+idNum+"' where id='"+id+"'";
// 创建命令
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
// 及时关闭连接
con.Close();
// 接着立即查询
this.buttonQuery_Click(sender, e);
}
4. 小结
本节用一个非常原始的方式,实现了用户信息的增删改查,具备一定的借鉴意义。