安全性和用户友好性
发布时间:2025-06-24 18:20:46 作者:北方职教升学中心 阅读量:411
1. 数据库连接与测试:通过点击按钮可以测试与数据库的连接,确保应用程序能够成功连接到本地数据库XSCJDB。
5. 数据删除:用户可以根据学生姓名删除相应的学生记录,这增加了对数据的管理和维护功能。
2.打开“视图-服务器资源管理器”,右键单击“数据连接”,如图。同时,还可以考虑进一步优化应用程序的功能和性能,提升用户体验。安全性和用户友好性。实例名称等信息正确无误,以保证成功连接到数据库。(要是电脑没有sql server,可以选中“视图-sql server资源管理器”创建数据库)
连接成功即如下(第一次可能只有一个)
4.新建数据库XSCJDB(学生成绩数据库),点开第二个小三角-右键点击数据库-添加新数据库
自己取名(最好采用英文命名)
5.选中该数据库并创建新表student,点击新建数据库前的小三角-右键表-添加新表
6.表中插入属性,双击即可打开
7.右键选中表查看表中数据
二.使用控件实现连接数据库并对其操作
(1)在工具箱中拖出dataGridView控件和botton控件(可以改名使其功能明确)
(2)双击botton1,进入代码编写(检查数据库的连接)
private void button1_Click(object sender, EventArgs e) { string strcom = @"Data Source = (localdb)ProjectModels;Initial Catalog = XSCJDB; Integrated Security = True;"; SqlConnection sqlcon; using (sqlcon = new SqlConnection(strcom)) { sqlcon.Open(); MessageBox.Show("数据库连接状态" + sqlcon.State.ToString(), "第一个对话框"); } MessageBox.Show("数据库连接状态" + sqlcon.State.ToString(), "第二个对话框"); }
注意:
此处应根据自己的电脑修改,具体步骤如下:
单击刚建的数据库-在右下角解决方案资源管理器中找到连接字符串-复制第一个True前面的内容
(3)双击双击botton2,进入代码编写(插入数据)
private void button2_Click(object sender, EventArgs e) { string strcom = @"Data Source = (localdb)ProjectModels;Initial Catalog = XSCJDB; Integrated Security = True;"; SqlConnection conn =null; try { conn = new SqlConnection(strcom); conn.Open(); SqlCommand mycmm= new SqlCommand(); mycmm.Connection = conn; mycmm.CommandType = CommandType.Text; mycmm.CommandText = @"insert into student(Id,name,major,grade,tel) values(@Id,@name,@major,@grade,@tel)"; mycmm.Parameters.Add(new SqlParameter("@Id", 2022002)); mycmm.Parameters.Add(new SqlParameter("@name", "李四")); mycmm.Parameters.Add(new SqlParameter("@major", "CS")); mycmm.Parameters.Add(new SqlParameter("@grade","80")); mycmm.Parameters.Add(new SqlParameter("@tel","13999216")); int returnvalue=mycmm.ExecuteNonQuery(); if(returnvalue!=-1) { MessageBox.Show("数据插入成功"); } } catch(Exception ex) { if(conn != null) { MessageBox.Show("数据插入失败" + ex.Message); } } }
(4)双击双击botton3,进入代码编写(查询全部数据)
// 处理button3的点击事件,从数据库中查询并显示所有数据 private void button3_Click(object sender, EventArgs e) { // 数据库连接字符串 string strcom = @"Data Source = (localdb)ProjectModels;Initial Catalog = XSCJDB; Integrated Security = True;"; SqlConnection conn = null; try { // 初始化并打开数据库连接 conn = new SqlConnection(strcom); conn.Open(); // 创建并配置SqlCommand对象 SqlCommand mycmm = new SqlCommand { Connection = conn, CommandType = CommandType.Text, CommandText = @"select * from student" }; // 使用SqlDataAdapter填充DataSet SqlDataAdapter sda = new SqlDataAdapter(mycmm); DataSet ds = new DataSet(); sda.Fill(ds, "studentList"); // 显示查询结果到DataGridView dataGridView2.DataSource = ds.Tables["studentList"].DefaultView; // 关闭数据库连接 conn.Close(); } catch (Exception ex) { // 处理异常 MessageBox.Show(ex.Message); if (conn != null) { conn.Close(); } } }
(5)在设计界面再拖入botton以及一个textbox(用于根据姓名查询)
(6)编写botton4代码(按名字查询)
// 处理button4的点击事件,根据名字查询数据 private void button4_Click(object sender, EventArgs e) { // 数据库连接字符串 string strcon = @"Data Source = (localdb)ProjectModels;Initial Catalog = XSCJDB; Integrated Security = True;"; SqlConnection myConnection = new SqlConnection(strcon); try { // 打开数据库连接 myConnection.Open(); // 创建并配置SqlCommand对象 SqlCommand myCommand = new SqlCommand { Connection = myConnection, CommandType = CommandType.Text, CommandText = @"select * from student where name =@name" }; // 添加参数并赋值 myCommand.Parameters.Add(new SqlParameter("@name", textBox1.Text)); // 执行查询命令并检查结果 int res = Convert.ToInt32(myCommand.ExecuteScalar()); if (res == 0) { throw new Exception("查无此人"); } // 使用SqlDataAdapter填充DataSet SqlDataAdapter sda = new SqlDataAdapter(myCommand); DataSet ds = new DataSet(); sda.Fill(ds, "xr"); // 显示查询结果到DataGridView dataGridView2.DataSource = ds.Tables["xr"].DefaultView; // 关闭数据库连接 myConnection.Close(); } catch (Exception ex) { // 处理异常 MessageBox.Show(ex.ToString()); if (myConnection != null) { myConnection.Close(); } } }
(7)对于dataGritView的代码
// 保存编辑单元格的原始值object cellTempValue = null; // 单元格开始编辑事件private void dataGridView2_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e){ // 保存单元格的原始值 cellTempValue = this.dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;} // 单元格结束编辑事件private void dataGridView2_CellEndEdit(object sender, DataGridViewCellEventArgs e){ // 如果单元格值没有改变,返回 if (object.Equals(cellTempValue, this.dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Value)) { return; } // 弹出确认修改对话框 if (MessageBox.Show("是否确定修改,并更新到数据库", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK) { // 如果取消修改,恢复原值 this.dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = cellTempValue; return; } // 数据库连接字符串 string strcom = @"your string"; SqlConnection myConnection = new SqlConnection(strcom); try { // 打开数据库连接 myConnection.Open(); // 创建并配置SqlCommand对象 SqlCommand myCommand = new SqlCommand { Connection = myConnection, CommandType = CommandType.Text }; // 构建更新SQL语句 string strSql = String.Format( "update student set ='{1}' where Id='{2}'", this.dataGridView2.Columns[e.ColumnIndex].HeaderText, // 当前选择的列名 this.dataGridView2.Rows[e.RowIndex].Cells[e.ColumnIndex].Value, // 选中单元格修改后的值 this.dataGridView2.Rows[e.RowIndex].Cells[0].Value // 选中单元格修改前的值 ); // 设置命令文本 myCommand.CommandText = strSql; // 执行更新命令 int res = myCommand.ExecuteNonQuery(); // 检查更新是否成功 if (res == 0) { throw new Exception("修改失败"); } else { MessageBox.Show("修改成功"); } // 关闭数据库连接 myConnection.Close(); } catch (Exception ex) { // 处理异常 MessageBox.Show(ex.ToString()); if (myConnection != null) { myConnection.Close(); } }}
三.实现
1.设计界面
2.运行
2.1连接数据库(点击连接数据库-确定-确定)即连接成功
2.2增加数据
2.3查询全部数据
2.4按名字查询
四.小结及易错点
这个Windows Forms应用程序展示了如何连接本地数据库XSCJDB,并实现了数据插入、在弹出的菜单中选择【创建新SQL Server 数据库】选项,弹出“创建新的SQL Server数据库”对话框。
2. 数据插入:点击相应按钮可以将预设的学生信息插入到数据库的student表中,这提供了一种简单的数据录入方式。查询和删除等基本功能。
3. 数据查询:通过点击按钮,应用程序能够查询并显示student表中的所有数据,使用户可以轻松地查看数据库中存储的信息。