C#窗体应用及对MySQL数据库的操作
### C#窗体应用及对MySQL数据库的操作 #### 一、C#窗体应用程序概述 在C#中,窗体应用程序是一种图形用户界面(GUI)应用,它允许开发者使用各种控件来构建用户交互界面。这类应用程序非常适合进行数据管理任务,如本案例中的学生信息管理系统。 #### 二、C#与MySQL数据库的集成 C#窗体应用能够通过ADO.NET等技术与MySQL数据库进行交互。这涉及到以下几个步骤: 1. **连接数据库**:首先需要建立与MySQL数据库的连接。这通常通过创建一个`SqlConnection`对象并提供正确的连接字符串来完成。 2. **执行SQL命令**:通过`SqlCommand`对象执行SQL语句,如插入、查询、更新或删除记录等。 3. **处理结果**:根据执行的结果,可以读取返回的数据或检查是否有异常发生。 #### 三、实验内容详解 ##### 1. 增加学生功能实现 为了实现增加学生的功能,我们需要在窗体上放置相应的控件,并编写逻辑来处理用户的输入。具体来说,这些控件包括: - 文本框(`TextBox`)用于输入姓名、学号、手机号等。 - 单选按钮(`RadioButton`)用于选择性别。 - 日期选择器(`DateTimePicker`)用于选择入学日期。 - 下拉列表(`ComboBox`)用于选择班级。 - 按钮(`Button`)用于提交表单。 示例代码如下: ```csharp private void buttonAdd_Click(object sender, EventArgs e) { string 学号 = textBoxID.Text; string 姓名 = textBoxName.Text; string 性别 = radioButtonMale.Checked ? "男" : "女"; string 入学日期 = dateTimePickerEnrollment.Value.ToString("yyyy-MM-dd"); string 手机号 = textBoxPhone.Text; string 学院 = textBoxCollege.Text; string 专业 = textBoxMajor.Text; string 班级 = comboBoxClass.Text; string 家庭地址 = textBoxAddress.Text; string connStr = "server=localhost;database=school;uid=root;pwd=your_password;"; using (MySqlConnection connection = new MySqlConnection(connStr)) { connection.Open(); string sql = "INSERT INTO students (学号, 姓名, 性别, 入学日期, 手机号, 学院, 专业, 班级, 家庭地址) VALUES (@学号, @姓名, @性别, @入学日期, @手机号, @学院, @专业, @班级, @家庭地址)"; using (MySqlCommand command = new MySqlCommand(sql, connection)) { command.Parameters.AddWithValue("@学号", 学号); command.Parameters.AddWithValue("@姓名", 姓名); command.Parameters.AddWithValue("@性别", 性别); command.Parameters.AddWithValue("@入学日期", 入学日期); command.Parameters.AddWithValue("@手机号", 手机号); command.Parameters.AddWithValue("@学院", 学院); command.Parameters.AddWithValue("@专业", 专业); command.Parameters.AddWithValue("@班级", 班级); command.Parameters.AddWithValue("@家庭地址", 家庭地址); int rowsAffected = command.ExecuteNonQuery(); if (rowsAffected > 0) { MessageBox.Show("学生信息已成功添加!"); } else { MessageBox.Show("添加失败,请检查输入信息!"); } } } } ``` ##### 2. 修改学生功能实现 修改学生信息时,首先需要从数据库中检索出该学生的信息,并显示在窗体上供用户编辑。用户编辑完成后,再次提交表单,将更新后的信息保存回数据库。 示例代码如下: ```csharp private void buttonEdit_Click(object sender, EventArgs e) { string 学号 = textBoxID.Text; string 新姓名 = textBoxNewName.Text; string 新性别 = radioButtonNewMale.Checked ? "男" : "女"; string 新入学日期 = dateTimePickerNewEnrollment.Value.ToString("yyyy-MM-dd"); string 新手机号 = textBoxNewPhone.Text; string 新学院 = textBoxNewCollege.Text; string 新专业 = textBoxNewMajor.Text; string 新班级 = comboBoxNewClass.Text; string 新家庭地址 = textBoxNewAddress.Text; string connStr = "server=localhost;database=school;uid=root;pwd=your_password;"; using (MySqlConnection connection = new MySqlConnection(connStr)) { connection.Open(); string sql = "UPDATE students SET 姓名 = @新姓名, 性别 = @新性别, 入学日期 = @新入学日期, 手机号 = @新手机号, 学院 = @新学院, 专业 = @新专业, 班级 = @新班级, 家庭地址 = @新家庭地址 WHERE 学号 = @学号"; using (MySqlCommand command = new MySqlCommand(sql, connection)) { command.Parameters.AddWithValue("@学号", 学号); command.Parameters.AddWithValue("@新姓名", 新姓名); command.Parameters.AddWithValue("@新性别", 新性别); command.Parameters.AddWithValue("@新入学日期", 新入学日期); command.Parameters.AddWithValue("@新手机号", 新手机号); command.Parameters.AddWithValue("@新学院", 新学院); command.Parameters.AddWithValue("@新专业", 新专业); command.Parameters.AddWithValue("@新班级", 新班级); command.Parameters.AddWithValue("@新家庭地址", 新家庭地址); int rowsAffected = command.ExecuteNonQuery(); if (rowsAffected > 0) { MessageBox.Show("学生信息已成功更新!"); } else { MessageBox.Show("更新失败,请检查输入信息!"); } } } } ``` ##### 3. 删除学生功能实现 删除学生信息相对简单,只需要根据用户提供的学号查询该学生是否存在,并将其从数据库中删除。 示例代码如下: ```csharp private void buttonDelete_Click(object sender, EventArgs e) { string 学号 = textBoxIDToDelete.Text; string connStr = "server=localhost;database=school;uid=root;pwd=your_password;"; using (MySqlConnection connection = new MySqlConnection(connStr)) { connection.Open(); string sql = "DELETE FROM students WHERE 学号 = @学号"; using (MySqlCommand command = new MySqlCommand(sql, connection)) { command.Parameters.AddWithValue("@学号", 学号); int rowsAffected = command.ExecuteNonQuery(); if (rowsAffected > 0) { MessageBox.Show("学生信息已成功删除!"); } else { MessageBox.Show("未找到对应的学生信息!"); } } } } ``` #### 四、注意事项 1. **数据库连接**:确保连接字符串正确无误,并且数据库服务器处于运行状态。 2. **SQL注入**:在处理用户输入时,要特别注意防止SQL注入攻击,可以通过参数化查询等方式来提高安全性。 3. **异常处理**:在执行数据库操作时,应妥善处理可能出现的各种异常情况,以避免程序崩溃或数据丢失。 4. **界面布局**:合理安排窗体上的控件布局,使界面更加友好易用。 以上就是关于如何在C#窗体应用中实现对学生信息进行增删改查的基本实现方法。通过这种方式,不仅可以提高开发效率,还能让应用程序具备良好的用户交互体验。
剩余7页未读,继续阅读
- weixin_400543492019-08-30还不错!!!
- 温水煮蛙的蛙2018-12-12没有使用parameter方式
- 福小白2020-12-17word文档,非项目源文件。
- 粉丝: 18
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于web的在线学习管理系统设计与实现
- 基于JavaWeb的汽车租赁平台论文.doc
- 基于javaweb的KTV点歌管理系统论文.doc
- 预警插件-Fine-report11
- 建设项目现场高温人员中暑事故应急预案.docx
- 建设项目工程超高层测量放线控制方案.docx
- 建筑公司建设项目现场雷电事故应急预案.docx
- 建筑公司员工食物中毒事故应急预案.docx
- 建筑公司建设项目现场风灾事故应急预案.docx
- 建筑集团建设项目火险应急预案.docx
- 深圳建设施工项目物体打击事故应急预案.docx
- 深圳建设项目高处坠落事故应急预案.docx
- 深圳建设项目机械伤害事故应急预案.docx
- 深圳建设项目施工现场各类事故应急预案.docx
- 深圳建设项目现场触电应急预案.docx
- 深圳建设项目坍塌事故应急预案.docx