C#实验-数据库操作.doc
《C#实验-数据库操作.doc》由会员分享,可在线阅读,更多相关《C#实验-数据库操作.doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验五 数据库操作一、实验目的:1、了解与ADO.NET框架相关的类。2、掌握数据库应用系统创建的一般过程。二、实验内容:设计并实现“学生选课系统”的“学生信息管理模块”,要求如下:(1) 界面如下图所示。(2) 单击“添加”按钮,实现将用户在文本框和组合框中设置的数据添加到学生信息表student中。(3) 用户在数据控件DataGridView中选择一条学生记录后,单击“修改”按钮,实现对所选学生记录的修改。(4) 用户在数据控件DataGridView中选择一条学生记录后,单击“删除”按钮,实现从学生信息表student表中删除相应记录。(5) “查询”按钮用于查询符合条件的学生记录。三
2、、实验要求:1、设计并实现“学生选课系统”的“学生信息管理模块”,并在实验报告中给出相应的实验步骤、调试过程以及实验结果分析。2、在实验报告中指出【待分析实验步骤】的设计和代码存在的不足之处。3、使用三层架构改写【待分析实验步骤】中的设计和代码。四、 实验步骤:一、 设计数据库1、 打开SQL SERVER,使用SQL SERVER自身携带的数据库master2、在master数据库下,创建学生信息表student。其表结构如下表所示。设计的表如下:添加的学生数据如下:二、 创建程序结构1、打开VS2008,新建一个项目,在新建项目对话框中,模板选择“Windows应用程序”,解决方案名称为“
3、StudentInfoManagement”,选择存放的路径后,单击确定。2、修改默认的窗体对象名为“FrmStudent”。3、在“解决资源管理器”中,选择“StudentInfoManagement”,单击右键,在弹出的菜单中,选择“添加类”,名称为“CDataBase.cs”。效果见下图:三、设计界面FrmStudent窗体以及窗体中各控件的属性设置如下表所示:控件类型控件名称属性设置结果FormFrmStudentText学生信息管理TextBoxTextBox1NametxtNOTextBox2NametxtNameTextBox3NametxtAgeTextBox4NametxtD
4、eptTextBox5NametxtSelectComboBoxComboBox1NamecmbSexItems男女DropDownStyleDropDownListComboBox2NamecmbSelectItems学号姓名性别年龄系别DropDownStyleDropDownListText学号ButtonButton1NamebtnAddText添加Button2NamebtnUpdateText修改Button3NamebtnDeleteText删除Button4NamebtnSelectText查询DataGridViewDataGridView1NamedgrdvStudentR
5、eadOnlyTrueRowHeadersWidth25五、实验结果1、执行结果如下:2、 点击添加的时候,出现的界面如下,点击确定的时候,会弹出是否确定的对话框3、 点击修改的时候,将学号的系别改为计算机系,结果如下:4、 点击删除按钮的时候点击是之后:名为system的记录已经没有了5、 选择查询条件为性别,查询值为男性,点击查询,得到以下结果:比如再以系别为选项,结果是:六、 代码结构数据库连接代码如下:CDataBase.cs using System;using System.Collections.Generic;using System.Linq;using System.Tex
6、t;using System.Data.SqlClient;using System.Data;using System.Data.OleDb;namespace StudentInfoManagement class CDataBase public static string connectionString = data source=127.0.0.1;uid=sa;pwd=jessica;database=master; public static SqlConnection conn = new SqlConnection(connectionString); /从数据库获取信息
7、public static DataSet GetDataFromDB(string sqlStr) conn.Open(); SqlDataAdapter myAdapter = new SqlDataAdapter(sqlStr, conn); DataSet myDataSet = new DataSet(); myDataSet.Clear(); myAdapter.Fill(myDataSet); conn.Close(); if (myDataSet.Tables0.Rows.Count != 0) return myDataSet; else return null; publi
8、c static void UpdateDB(string sqlStr) conn.Open(); SqlCommand myCmd = new SqlCommand(sqlStr, conn); myCmd.CommandType = CommandType.Text; myCmd.ExecuteNonQuery(); conn.Close(); FormStudent.cs 窗体设计代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using S
9、ystem.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace StudentInfoManagement public partial class FormStudent : Form public FormStudent() InitializeComponent(); /用于设置用户界面中的文本框和下拉列表框可用,并将焦点设置到学号文本框中。 private void ObjOpen() txtNo.Enabled = true; txtName.Enabled = true;
10、txtAge.Enabled = true; cmbSex.Enabled = true; txtDept.Enabled = true; txtNo.Focus(); /用于设置用户界面中的文本框和下拉列表框不可用。 private void ObjClose() txtNo.Enabled = false; txtName.Enabled = false; txtAge.Enabled = false; cmbSex.Enabled = false; txtDept.Enabled = false; /用于清空用户界面中文本框的文本内容,并设置下拉列表框“cmbSex”不选中任何项。 pr
11、ivate void ClearAll() txtNo.Text = ; txtName.Text = ; txtAge.Text = ; cmbSex.SelectedIndex = -1; txtDept.Text = ; /用于将Student表中的数据读取出来,显示在相应的数据控件中, /并设置了数据控件中各数据列的列标题和列宽。 private void RefreshData() string sqlStr; DataSet ds = new DataSet(); sqlStr = select * from student; ds = CDataBase.GetDataFromD
12、B(sqlStr); if (ds != null) dgrdvStudent.DataSource = ds.Tables0; dgrdvStudent.Columns0.HeaderText = 学号; dgrdvStudent.Columns0.Width = 120; dgrdvStudent.Columns1.HeaderText = 姓名; dgrdvStudent.Columns1.Width = 120; dgrdvStudent.Columns2.HeaderText = 性别; dgrdvStudent.Columns2.Width = 80; dgrdvStudent.C
13、olumns3.HeaderText = 年龄; dgrdvStudent.Columns3.Width = 80; dgrdvStudent.Columns4.HeaderText = 系; dgrdvStudent.Columns4.Width = 150; dgrdvStudent_RowHeaderMouseClick(null, null); else dgrdvStudent.DataSource = null; /返回一个bool型的值。在添加学生信息时,用于判断当前输入的学生信息是否在数据库中已 /经存在,其参数为输入的学生学号。若返回值为true,说明输入的学生信息不存在,可
14、以添 /加学生信息;否则不能添加。 private bool IsNoExist(string no) int n = dgrdvStudent.Rows.Count; for (int i = 0; i n - 1; i+) if (no = dgrdvStudent.Rowsi.Cells0.Value.ToString().Trim() return false; return true; /窗体的Load事件代码。 private void FormStudent_Load(object sender, EventArgs e) ObjClose(); RefreshData(); /
15、窗体的FormClosing事件代码 private void FrmStudent_FormClosing(object sender, FormClosingEventArgs e) if (txtName.Enabled) if (MessageBox.Show(数据尚未保存,要关闭窗口吗?, 询问, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.No) e.Cancel = true; /数据控件代码 private void dgrdv
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 实验 数据库 操作
限制150内