C#_会员管理系统:开发六(数据搜索)

时间:2022-11-13 23:56:55

增加界面中的搜索功能

会员资料管理界面(VIPManager.cs):

C#_会员管理系统:开发六(数据搜索)

详细代码如下:

  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             cmbforfieldSelecting.Text = "全局搜索";
 30             cmbforfieldSelecting.Items.Add("全局搜索");
 31             cmbforfieldSelecting.Items.Add("编号");
 32             cmbforfieldSelecting.Items.Add("名字");
 33             cmbforfieldSelecting.Items.Add("性别");
 34             cmbforfieldSelecting.Items.Add("年龄");
 35             cmbforfieldSelecting.Items.Add("地址");
 36             cmbforfieldSelecting.Items.Add("电话");
 37         }
 38 
 39         //写一个刷新数据的方法(跟查看数据一样)
 40         public void Refresh(bool isAdded = false)
 41         {
 42             //查询数据库字符串
 43             string sql = String.Format("select vId '{0}',vName '{1}',vGender '{2}',vAge '{3}',vAddress '{4}',vPhone '{5}' from VipInformation", "编号", "名字", "性别", "年龄", "地址", "电话");
 44             //连接数据库对象
 45             SqlConnection conn = new SqlConnection(connStr);
 46             //操作数据库对象
 47             SqlCommand cmd = new SqlCommand(sql, conn);
 48             //创建表对象
 49             System.Data.DataTable dt = new System.Data.DataTable();
 50             //创建数据库填充操作对象(语句)
 51             SqlDataAdapter sda = new SqlDataAdapter(cmd);
 52             //把数据填充进dt表中
 53             sda.Fill(dt);
 54             //指定dgvManager控件的数据源:dt
 55             dgvManager.DataSource = dt;
 56 
 57             //if (isAdded)
 58             //{
 59             //    if (dt.Rows.Count > 0)
 60             //        dgvManager.Rows[0].Selected = false;
 61             //    dgvManager.Rows[dt.Rows.Count - 1].Selected = true;
 62             //}
 63         }
 64 
 65         //刷新数据界面
 66         private void btnView_Click(object sender, EventArgs e)
 67         {
 68             //刷新数据
 69             Refresh();
 70         }
 71 
 72         //添加数据
 73         private void btnAdd_Click(object sender, EventArgs e)
 74         {
 75             //判断文本框是否为空,提示数据完整性
 76             if (txtName.Text == "" || txtGender.Text == "" || txtAge.Text == "" || txtAddress.Text == "" || txtPhone.Text == "")
 77             {
 78                 MessageBox.Show("数据不能为空,请填写齐全");
 79                 return;
 80             }
 81             //插入数据库字符串
 82             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());
 83             //连接数据库对象
 84             SqlConnection conn = new SqlConnection(connStr);
 85             //操作数据库对象
 86             SqlCommand cmd = new SqlCommand(sql, conn);
 87             //创建表对象
 88             System.Data.DataTable dt = new DataTable();
 89             //创建数据库填充操作对象(语句)
 90             SqlDataAdapter sda = new SqlDataAdapter(cmd);
 91             //把数据填充进dt表中
 92             sda.Fill(dt);
 93             //指定dgvManager控件的数据源:dt
 94             dgvManager.DataSource = dt;
 95             //刷新数据
 96             Refresh();
 97         }
 98 
 99         //删除数据
100         private void btnDelete_Click(object sender, EventArgs e)
101         {
102             //使用sql删除语句,where 1=1 就是没有条件,等于全部数据删除
103             string sql = "delete from VipInformation where 1=1";
104             //如果选中某行则执行
105             if (dgvManager.CurrentRow.Selected)
106             {
107                 sql = sql + " and vid=" + Convert.ToInt32(dgvManager.CurrentRow.Cells[0].Value.ToString());
108             }
109             int n = 0;
110             //创建连接数据库对象
111             SqlConnection conn = new SqlConnection(connStr);
112             //创建操作数据库对象
113             SqlCommand cmd = new SqlCommand(sql, conn);
114             //打开数据库
115             conn.Open();
116             //取得ExecuteNonQuery返回的受影响行数,无影响则为0
117             n = cmd.ExecuteNonQuery();
118             if (n == 0)
119             {
120                 MessageBox.Show("删除操作失败!不存在的ID");
121                 conn.Close();
122                 return;
123             }
124             else if (n > 0)
125             {
126                 MessageBox.Show("删除操作成功!");
127             }
128             //关闭数据库连接
129             conn.Close();
130             //刷新数据界面
131             Refresh();
132         }
133 
134         //修改数据
135         private void btnSave_Click(object sender, EventArgs e)
136         {
137             if (txtName.Text == "" || txtGender.Text == "" || txtAge.Text == "" || txtAddress.Text == "" || txtPhone.Text == "")
138             {
139                 MessageBox.Show("所提供的数据不完整,请填写完整数据");
140                 return;
141             }
142             int n = 0;
143             //更新SQL语句
144             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() + "'";
145             SqlConnection conn = new SqlConnection(connStr);
146             SqlCommand cmd = new SqlCommand(sqlupdate, conn);
147             conn.Open();
148             n = cmd.ExecuteNonQuery();
149             if (n == 0)
150             {
151                 MessageBox.Show("修改操作失败!");
152                 conn.Close();
153                 return;
154             }
155             else if (n > 0)
156             {
157                 MessageBox.Show("修改操作成功!");
158             }
159             conn.Close();
160             Refresh();
161         }
162 
163         //点击dgvManager在文本框上显示
164         private void dgvManager_CellContentClick(object sender, DataGridViewCellEventArgs e)
165         {
166             txtName.Text = dgvManager.CurrentRow.Cells[1].Value.ToString();
167             txtGender.Text = dgvManager.CurrentRow.Cells[2].Value.ToString();
168             txtAge.Text = dgvManager.CurrentRow.Cells[3].Value.ToString();
169             txtAddress.Text = dgvManager.CurrentRow.Cells[4].Value.ToString();
170             txtPhone.Text = dgvManager.CurrentRow.Cells[5].Value.ToString();
171         }
172 
173         string selectedValue;
174         //事件索引改变时触发
175         private void cmbforfieldSelecting_SelectedIndexChanged(object sender, EventArgs e)
176         {
177             string strSelected = cmbforfieldSelecting.Text;
178             switch (strSelected)
179             {
180                 case "全局搜索":
181                     selectedValue = "全局搜索";
182                     break;
183                 case "编号":
184                     selectedValue="vid";
185                     break;
186                 case "名字":
187                     selectedValue = "vname";
188                     break;
189                 case "性别":
190                     selectedValue = "vgender";
191                     break;
192                 case "年龄":
193                     selectedValue = "vage";
194                     break;
195                 case "地址":
196                     selectedValue = "vaddress";
197                     break;
198                 case "电话":
199                     selectedValue = "vphone";
200                     break;
201                 default:
202                     selectedValue = "全局搜索";
203                     break;
204             }
205         }
206 
207         private void txtDataforQuery_TextChanged(object sender, EventArgs e)
208         {
209             string sql = "";
210             if (txtDataforQuery.Text.Trim() == "")
211             {
212                 //执行查询语句
213                 sql = "select * from VipInformation";
214             }
215             else if (cmbforfieldSelecting.Text.Trim() == "全局搜索" || selectedValue == "全局搜索")
216             {
217                 //全字段搜索
218                 sql = "select * from VipInformation where vName like '%" + txtDataforQuery.Text.Trim() + "%' or vgender like '%" + txtDataforQuery.Text.Trim() + "%' or vage like '%" + txtDataforQuery.Text.Trim() + "%' or vaddress like '%" + txtDataforQuery.Text.Trim() + "%' or vphone like '%" + txtDataforQuery.Text.Trim() + "%'";
219             }
220             else if (selectedValue == "vid" || selectedValue == "vname" || selectedValue == "vgender" || selectedValue == "vage" || selectedValue == "vaddress" || selectedValue == "vphone")
221             {
222                 //通过相应的字段进行搜索
223                 sql = "select * from VipInformation where " + selectedValue + " like '%" + txtDataforQuery.Text.Trim() + "%'";
224             }
225 
226             SqlConnection conn = new SqlConnection(connStr);
227             SqlCommand cmd = new SqlCommand(sql, conn);
228             conn.Open();
229             DataTable dt = new DataTable();
230             SqlDataAdapter sda = new SqlDataAdapter(cmd);
231             sda.Fill(dt);
232             dgvManager.DataSource = dt;
233             conn.Close();
234         }
235 
236         private void btnBack_Click(object sender, EventArgs e)
237         {
238             VIPMain vmain = new VIPMain();
239             vmain.Show();
240             this.Hide();
241         }
242 
243         private void btnClose_Click(object sender, EventArgs e)
244         {
245             VIPLog vpl = new VIPLog();
246             vpl.GetExitTime();
247             vpl.AddMsg();
248             //彻底的退出
249             System.Environment.Exit(0);
250         }
251          
252 
253     }
254 }

 

日志查看(VIPLog.cs):

C#_会员管理系统:开发六(数据搜索)

详细代码如下:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10 using System.Data.SqlClient;
 11 using System.Configuration;
 12 
 13 namespace 会员管理系统
 14 {
 15     public partial class VIPLog : Form
 16     {
 17         public VIPLog()
 18         {
 19             InitializeComponent();
 20         }
 21         //连接数据库字符串多次调用,放在外面省代码量
 22         public static string connstr = ConfigurationManager.ConnectionStrings["str"].ToString();
 23 
 24         private void btnClose_Click(object sender, EventArgs e)
 25         {
 26             //获取当前时间
 27             GetExitTime();
 28             //添加当前的用户信息到日志中
 29             AddMsg();
 30             //退出程序
 31             System.Environment.Exit(0);
 32         }
 33 
 34         private void btnBack_Click(object sender, EventArgs e)
 35         {
 36             VIPMain vm = new VIPMain();
 37             vm.Show();
 38             this.Hide();
 39         }
 40 
 41         private void VIPLog_Load(object sender, EventArgs e)
 42         {
 43             //AddMsg();
 44             ShowMsg();
 45         }
 46         //写一个窗体加载自动从数据库获取数据并显示在datagridview的方法
 47         public void ShowMsg()
 48         {
 49             //连接数据库对象
 50             SqlConnection conn = new SqlConnection(connstr);
 51             string sql = "select [id] 编号,vName 名字,situation 状态,[time] 登录或退出时间,vtype 权限 from [log]";
 52             //操作数据库对象
 53             SqlCommand cmd = new SqlCommand(sql, conn);
 54             //创建表对象
 55             DataTable dt = new DataTable();
 56             //创建数据库填充操作对象(语句)
 57             SqlDataAdapter sda = new SqlDataAdapter(cmd);
 58             //把数据填充进dt表中
 59             sda.Fill(dt);
 60             //指定dgvManager控件的数据源:dt
 61             dgvLog.DataSource = dt;
 62         }
 63         //写一个窗体加载(或者退出)自动添加当前用户登录信息进数据库的方法
 64         public void AddMsg()
 65         {
 66             //连接数据库对象
 67             SqlConnection conn = new SqlConnection(connstr);
 68 
 69             string sql = string.Format("insert into [Log](vName,situation,time) values('{0}','{1}','{2}')",VIPLogin.uid,VIPLogin.situation,VIPLogin.time);
 70             //操作数据库对象
 71             SqlCommand cmd = new SqlCommand(sql,conn);
 72             //打开数据库连接
 73             conn.Open();
 74             //执行操作数据库对象并返回受影响条数
 75             int n = cmd.ExecuteNonQuery();
 76             //关闭数据库连接
 77             conn.Close();
 78         }
 79         //写一个获取当前系统时间的方法(退出时间)
 80         //退出时顺手修改登录状态
 81         public void GetExitTime()
 82         {
 83             VIPLogin.time = DateTime.Now;
 84             VIPLogin.situation = "退出";
 85         }
 86 
 87         //日志查询
 88         private void btnLogQuery_Click(object sender, EventArgs e)
 89         {
 90             //初始化 showSql语句
 91             string sql = "";
 92             //如果文本框txtQuery 输入的内容为空值
 93             if (txtLogQuery.Text.Trim() == "")
 94             {
 95                 //显示所有数据
 96                 sql = "select * from [log]";
 97             }
 98             else
 99             {
100                 //否则 进行 全局搜索 将文本框里的内容与 各字段 进行 匹配
101                 sql = "select * from [Log] where [id] like '%" + txtLogQuery.Text.Trim() + "%' or vname like '%" + txtLogQuery.Text.Trim() + "%' or situation like '%" + txtLogQuery.Text.Trim() + "%' or [time] like '%" + txtLogQuery.Text.Trim() + "%' or vtype like '%" + txtLogQuery.Text.Trim() + "%'";
102             }
103             SqlConnection conn = new SqlConnection(connstr);
104             SqlCommand cmd = new SqlCommand(sql, conn);
105             conn.Open();
106             DataTable dt = new DataTable();
107             SqlDataAdapter sda = new SqlDataAdapter(cmd);
108             sda.Fill(dt);
109             dgvLog.DataSource = dt;
110         }
111 
112     }
113 }