C#_会员管理系统:开发二(会员资料管理界面的‘增删改查’)

会员资料管理界面:

新建一个窗体,窗体界面和控件如下:

窗体中的控件dgvManager更改FullRowSelect属性(点击选中效果)为:FullRowSelect

会员资料管理界面窗体的详细代码:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Configuration;
  5 using System.Data;
  6 using System.Data.SqlClient;
  7 using System.Drawing;
  8 using System.Linq;
  9 using System.Text;
 10 using System.Threading.Tasks;
 11 using System.Windows.Forms;
 12
 13 namespace 会员管理系统
 14 {
 15     public partial class VipManager : Form
 16     {
 17         public VipManager()
 18         {
 19             InitializeComponent();
 20         }
 21
 22         //连接字符串 获取配置文件里的连接路径,多次需要调用,放在外面方便
 23         static string connStr = ConfigurationManager.ConnectionStrings["str"].ConnectionString;
 24         //窗体运行自动加载
 25         private void VipManager_Load(object sender, EventArgs e)
 26         {
 27             //刷新数据
 28             Refresh();
 29         }
 30
 31         //写一个刷新数据的方法(跟查看数据一样)
 32         public void Refresh(bool isAdded = false)
 33         {
 34             //查询数据库字符串
 35             string sql = String.Format("select vId ‘{0}‘,vName ‘{1}‘,vGender ‘{2}‘,vAge ‘{3}‘,vAddress ‘{4}‘,vPhone ‘{5}‘ from VipInformation", "编号", "名字", "性别", "年龄", "地址", "电话");
 36             //连接数据库对象
 37             SqlConnection conn = new SqlConnection(connStr);
 38             //操作数据库对象
 39             SqlCommand cmd = new SqlCommand(sql, conn);
 40             //创建表对象
 41             System.Data.DataTable dt = new System.Data.DataTable();
 42             //创建数据库填充操作对象(语句)
 43             SqlDataAdapter sda = new SqlDataAdapter(cmd);
 44             //把数据填充进dt表中
 45             sda.Fill(dt);
 46             //指定dgvManager控件的数据源:dt
 47             dgvManager.DataSource = dt;
 48
 49             //if (isAdded)
 50             //{
 51             //    if (dt.Rows.Count > 0)
 52             //        dgvManager.Rows[0].Selected = false;
 53             //    dgvManager.Rows[dt.Rows.Count - 1].Selected = true;
 54             //}
 55         }
 56
 57         //刷新数据界面
 58         private void btnView_Click(object sender, EventArgs e)
 59         {
 60             //刷新数据
 61             Refresh();
 62         }
 63
 64         //添加数据
 65         private void btnAdd_Click(object sender, EventArgs e)
 66         {
 67             //判断文本框是否为空,提示数据完整性
 68             if (txtName.Text == "" || txtGender.Text == "" || txtAge.Text == "" || txtAddress.Text == "" || txtPhone.Text == "")
 69             {
 70                 MessageBox.Show("数据不能为空,请填写齐全");
 71                 return;
 72             }
 73             //插入数据库字符串
 74             string sql = string.Format("insert into VipInformation values(‘{0}‘,‘{1}‘,{2},‘{3}‘,‘{4}‘)",txtName.Text.Trim(),txtGender.Text.Trim(),txtAge.Text.Trim(),txtAddress.Text.Trim(),txtPhone.Text.Trim());
 75             //连接数据库对象
 76             SqlConnection conn = new SqlConnection(connStr);
 77             //操作数据库对象
 78             SqlCommand cmd = new SqlCommand(sql, conn);
 79             //创建表对象
 80             System.Data.DataTable dt = new DataTable();
 81             //创建数据库填充操作对象(语句)
 82             SqlDataAdapter sda = new SqlDataAdapter(cmd);
 83             //把数据填充进dt表中
 84             sda.Fill(dt);
 85             //指定dgvManager控件的数据源:dt
 86             dgvManager.DataSource = dt;
 87             //刷新数据
 88             Refresh();
 89         }
 90
 91         //删除数据
 92         private void btnDelete_Click(object sender, EventArgs e)
 93         {
 94             //使用sql删除语句,where 1=1 就是没有条件,等于全部数据删除
 95             string sql = "delete from VipInformation where 1=1";
 96             //如果选中某行则执行
 97             if (dgvManager.CurrentRow.Selected)
 98             {
 99                 sql = sql + " and vid=" + Convert.ToInt32(dgvManager.CurrentRow.Cells[0].Value.ToString());
100             }
101             int n = 0;
102             //创建连接数据库对象
103             SqlConnection conn = new SqlConnection(connStr);
104             //创建操作数据库对象
105             SqlCommand cmd = new SqlCommand(sql, conn);
106             //打开数据库
107             conn.Open();
108             //取得ExecuteNonQuery返回的受影响行数,无影响则为0
109             n = cmd.ExecuteNonQuery();
110             if (n == 0)
111             {
112                 MessageBox.Show("删除操作失败!不存在的ID");
113                 conn.Close();
114                 return;
115             }
116             else if (n > 0)
117             {
118                 MessageBox.Show("删除操作成功!");
119             }
120             //关闭数据库连接
121             conn.Close();
122             //刷新数据界面
123             Refresh();
124         }
125
126         //修改数据
127         private void btnSave_Click(object sender, EventArgs e)
128         {
129             if (txtName.Text == "" || txtGender.Text == "" || txtAge.Text == "" || txtAddress.Text == "" || txtPhone.Text == "")
130             {
131                 MessageBox.Show("所提供的数据不完整,请填写完整数据");
132                 return;
133             }
134             int n = 0;
135             //更新SQL语句
136             string sqlupdate = "update VipInformation set vName=‘" + txtName.Text + "‘,vgender=‘" + txtGender.Text + "‘,vage=" + txtAge.Text + ",vaddress=‘" + txtAddress.Text + "‘,vphone=‘" + txtPhone.Text + "‘ where vid=‘" + dgvManager.CurrentRow.Cells[0].Value.ToString() + "‘";
137             SqlConnection conn = new SqlConnection(connStr);
138             SqlCommand cmd = new SqlCommand(sqlupdate, conn);
139             conn.Open();
140             n = cmd.ExecuteNonQuery();
141             if (n == 0)
142             {
143                 MessageBox.Show("修改操作失败!");
144                 conn.Close();
145                 return;
146             }
147             else if (n > 0)
148             {
149                 MessageBox.Show("修改操作成功!");
150             }
151             conn.Close();
152             Refresh();
153         }
154
155         //点击dgvManager在文本框上显示
156         private void dgvManager_CellContentClick(object sender, DataGridViewCellEventArgs e)
157         {
158             txtName.Text = dgvManager.CurrentRow.Cells[1].Value.ToString();
159             txtGender.Text = dgvManager.CurrentRow.Cells[2].Value.ToString();
160             txtAge.Text = dgvManager.CurrentRow.Cells[3].Value.ToString();
161             txtAddress.Text = dgvManager.CurrentRow.Cells[4].Value.ToString();
162             txtPhone.Text = dgvManager.CurrentRow.Cells[5].Value.ToString();
163         }
164
165     }
166 }

之前登录窗体的代码增加代码:

 1                             if (pwd == txtPwd.Text)
 2                             {
 3                                 //说明在该账户下 密码正确, 系统登录成功
 4                                 MessageBox.Show("登录成功,正在进入主界面......");
 5                                 //***************新增代码***************
 6                                 //创建新的会员资料管理界面窗体并显示,同时把登录界面隐藏
 7                                 VipManager vm=new VipManager();
 8                                 vm.Show();
 9                                 this.Hide();
10                                 //***************新增代码***************
11                             }
12                             else
13                             {
14                                 //密码错误
15                                 MessageBox.Show("密码错误,请重新输入");
16                                 txtPwd.Text = "";
17                             }

登录窗体的详细代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Configuration;
 5 using System.Data;
 6 using System.Drawing;
 7 using System.Linq;
 8 using System.Text;
 9 using System.Threading.Tasks;
10 using System.Windows.Forms;
11 using System.Data.SqlClient;
12
13 namespace 会员管理系统
14 {
15     public partial class VIPLogin : Form
16     {
17         public VIPLogin()
18         {
19             InitializeComponent();
20         }
21         //用于连接配置文件App.config
22         string connStr = ConfigurationManager.ConnectionStrings["str"].ConnectionString;
23         //登录按钮
24         private void btnLogin_Click(object sender, EventArgs e)
25         {
26             //连接数据库语句
27             using(SqlConnection con=new SqlConnection(connStr))
28             {
29                 //操作数据库语句
30                 string sql = "select vuserpwd from vipaccount where vUserName=‘" + txtName.Text + "‘";
31                 using(SqlCommand cmd=new SqlCommand(sql,con))
32                 {
33                     //打开数据库
34                     con.Open();
35                     //使用 SqlDataReader 来 读取数据库
36                     using (SqlDataReader sdr = cmd.ExecuteReader())
37                     {
38                         //SqlDataReader 在数据库中为 从第1条数据开始 一条一条往下读
39                         if (sdr.Read()) //如果读取账户成功(文本框中的用户名在数据库中存在)
40                         {
41                             //则将第1条 密码 赋给 字符串pwd  ,并且依次往后读取 所有的密码
42                             //Trim()方法为移除字符串前后的空白
43                             string pwd = sdr.GetString(0).Trim();
44                             //如果 文本框中输入的密码 ==数据库中的密码
45                             if (pwd == txtPwd.Text)
46                             {
47                                 //说明在该账户下 密码正确, 系统登录成功
48                                 MessageBox.Show("登录成功,正在进入主界面......");
49                                 //***************新增代码***************
50                                 //创建新的会员资料管理界面窗体并显示,同时把登录界面隐藏
51                                 VipManager vm=new VipManager();
52                                 vm.Show();
53                                 this.Hide();
54                                 //***************新增代码***************
55                             }
56                             else
57                             {
58                                 //密码错误
59                                 MessageBox.Show("密码错误,请重新输入");
60                                 txtPwd.Text = "";
61                             }
62                         }
63                         else
64                         {
65                             //用户名错误
66                             MessageBox.Show("用户名错误,请重新输入!");
67                             txtName.Text = "";
68                         }
69                     }
70                 }
71             }
72         }
73
74     }
75 }

运行效果:

时间: 2024-08-25 04:29:43

C#_会员管理系统:开发二(会员资料管理界面的‘增删改查’)的相关文章

IOS开发中使用CNContact对通讯录增删改查

IOS开发中使用CNContact对通讯录增删改查 首先当然是把CNcontact包含在工程中: 1 @import Contacts; 1.下面是增加联系人的程序段: 1 CNMutableContact * contact = [[CNMutableContact alloc]init]; 2 contact.imageData = UIImagePNGRepresentation([UIImage imageNamed:@"22"]); 3 //设置名字 4 contact.gi

基于SpringBoot开发一个Restful服务,实现增删改查功能

在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便.快捷.但是当时并没有认真的去学习下,毕竟感觉自己在Struts和SpringMVC都用得不太熟练.不过在看了很多关于SpringBoot的介绍之后,并没有想象中的那么难,于是开始准备学习SpringBoot. 在闲暇之余的时候,看了下SpringBoot实战以及一些大神关于SpringBoot的博客之后,开始写起了我的第一个SpringBoot的项目.在能够对SpringBoot进行一些简单的开发Re

ActiveAndroid (二):如何进行增删改查

上一篇在这:Github开源框架:ActiveAndroid (一) 创建我们自己的数据库模型 创建我们自己的数据库模型是很简单的,只要创建一个有注释域的类,并把它命名为我们要用的名字就可以了.但是有两件事情我们必须要注意:一.你的类必须是Model类的子类,并且使用@Column进行注释.ActiveAndroid 会处理类内的基本数据类型以及和其他表间的关系或者是日期类.二.ActiveAndroid 会在你的表中自动创建一个ID字段.这个字段会自动地递增. ActiveAndroid将使用

EF6 学习笔记(二):操练 CRUD 增删改查

接上篇: http://www.cnblogs.com/jacky-zhang/p/7373607.html 原文链接: https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/implementing-basic-crud-functionality-with-the-entity-framework-in-asp-net-mvc-applica

SQL学习(二)SQL基础的增删改查

在测试时使用数据库时,用的比较多的就是增删改查SQL了. 一.增加(insert into ...values) 用于向表中插入新记录 1.不指定列(表示:依次插入所有列的值) insert into ticket values('2','测试') 2.指定列(表示:指定列插入数据) insert into ticket(name) values('测试') 二.删除(delete) 用于删除表中的行 1.删除所有行 delete from ticket 或:delete * from tick

Sqlserver 实际开发中常见的数据库操作增删改查----增

注意我说的常见查询,可不是简单到一个表得增删改查,做过实际开发得人都知道,在实际开发中,真正牵扯到一个表得增删改查只能说占很小得一部分,大多都是好几个表的关联操作的. 下面我就说一下我在实际开发中经常用到得一些增删改查方式.(首先我还要说一下,就是我虽然能写,但是我不知道这种查询方式叫什么类型查询,毕竟数据库这块以前都没干过,做.net开发也就一年左右,大家看我写的博客也会知道,以前搞前端U3D游戏开发的,不接触数据库,取数据调后台接口就行了,其他不用管.所以没做.net前,我也就是会大学时候学

Mysql学习笔记(二)对表结构的增删改查

有将近一个星期都没有更新mysql了.相反linux的东西倒是学习不少.可能我个人情感上对linux更感兴趣一点.但mysql我也不烦,只是一旦将精力投入到了一样事情上去,就很难将精力分散去搞其他的东西. 最近我也调整了学习计划和健身计划.以前是每天晚上下班后,运动半个小时到一个小时,现在是晚上早睡,基本上如果没有特别的安排,10:30是肯定要入睡的.从下班到家,然后抽出二到三个小时学习一下.至于健身,要放在了早上,昨天试验了一下,早上还是起的来的.5:30起床,跑步半个小时,甚至还有时间去早市

全文检索(二)-基于lucene4.10的增删改查

今天 用lucene完毕了 一个简单的web应用.提取了早期编写的一个測试类. 首先简单介绍下lucene几个经常使用包; lucene 包的组成结构:对于外部应用来说索引模块(index)和检索模块(search)是基本的外部应用入口 org.apache.Lucene.search/ 搜索入口 org.apache.Lucene.index/ 索引入口 org.apache.Lucene.analysis/ 语言分析器 org.apache.Lucene.queryParser/ 查询分析器

ABP开发手记10 - 展示层实现增删改查-控制器

点这里进入ABP开发手记目录 创建视图模型 在展示层(即JD.CRS.Web.Mvc)的Controllers下新建一个控制器CourseController.cs 1 using Abp.Application.Services.Dto; 2 using Abp.AspNetCore.Mvc.Authorization; 3 using JD.CRS.Authorization; 4 using JD.CRS.Controllers; 5 using JD.CRS.Course; 6 usin