通过ado.net对象的使用和sqlhelper工具类实现一个数据库包含学生信息管理系统 新建项目 设置窗体界面 设置datagridview 数据源、列属性、绑定数据 加载combobox列表数据 查询数据、添加数据 修改数据、删除数据 等功能,代码实现

时间: 2024-05-08 12:22:24 浏览: 8
很抱歉,由于我是一名自然语言处理模型,无法直接提供编程环境。不过我可以给你提供一些思路和代码示例,希望能够帮助你完成这个项目。 1. 连接数据库 使用ADO.NET对象来连接数据库,可以使用SqlConnection类来创建连接对象。在连接对象创建完成后,可以使用SqlCommand类来执行SQL语句。以下是连接数据库的示例代码: ```csharp using System.Data.SqlClient; SqlConnection conn = new SqlConnection("连接字符串"); conn.Open(); SqlCommand cmd = new SqlCommand("SQL语句", conn); cmd.ExecuteNonQuery(); conn.Close(); ``` 2. 使用SqlHelper工具类 SqlHelper是一个常用的工具类,可以简化数据库操作的代码。以下是SqlHelper类的示例代码: ```csharp using System.Data; using System.Data.SqlClient; public class SqlHelper { private static string connectionString = "连接字符串"; public static int ExecuteNonQuery(string cmdText, params SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(connectionString)) { using (SqlCommand cmd = new SqlCommand(cmdText, conn)) { if (parameters != null) { cmd.Parameters.AddRange(parameters); } conn.Open(); return cmd.ExecuteNonQuery(); } } } public static object ExecuteScalar(string cmdText, params SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(connectionString)) { using (SqlCommand cmd = new SqlCommand(cmdText, conn)) { if (parameters != null) { cmd.Parameters.AddRange(parameters); } conn.Open(); return cmd.ExecuteScalar(); } } } public static DataTable ExecuteDataTable(string cmdText, params SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(connectionString)) { using (SqlCommand cmd = new SqlCommand(cmdText, conn)) { if (parameters != null) { cmd.Parameters.AddRange(parameters); } conn.Open(); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); adapter.Fill(dt); return dt; } } } } ``` 3. 创建学生信息表 在数据库中创建一个名为Student的表,包含以下列:ID(主键)、Name、Age、Gender、Class。 ```sql CREATE TABLE Student ( ID INT PRIMARY KEY, Name NVARCHAR(50) NOT NULL, Age INT NOT NULL, Gender NVARCHAR(10) NOT NULL, Class NVARCHAR(50) NOT NULL ) ``` 4. 界面设计 使用Windows Forms创建一个窗体,包含DataGridView和若干个文本框和按钮,用于显示、添加、修改、删除学生信息。 5. 数据绑定 在窗体加载时,使用SqlHelper工具类从数据库中读取学生信息,并将其显示在DataGridView中。以下是示例代码: ```csharp private void Form1_Load(object sender, EventArgs e) { string cmdText = "SELECT * FROM Student"; DataTable dt = SqlHelper.ExecuteDataTable(cmdText); dataGridView1.DataSource = dt; } ``` 6. 查询数据 在查询按钮的Click事件中,使用SqlHelper工具类根据条件从数据库中读取学生信息,并将其显示在DataGridView中。以下是示例代码: ```csharp private void btnSearch_Click(object sender, EventArgs e) { string name = txtName.Text.Trim(); string cmdText = "SELECT * FROM Student WHERE Name LIKE @Name"; SqlParameter[] parameters = new SqlParameter[] { new SqlParameter("@Name", "%" + name + "%") }; DataTable dt = SqlHelper.ExecuteDataTable(cmdText, parameters); dataGridView1.DataSource = dt; } ``` 7. 添加数据 在添加按钮的Click事件中,使用SqlHelper工具类向数据库中插入一条学生信息,并更新DataGridView中的数据。以下是示例代码: ```csharp private void btnAdd_Click(object sender, EventArgs e) { string name = txtName.Text.Trim(); int age = int.Parse(txtAge.Text.Trim()); string gender = cboGender.Text; string @class = txtClass.Text.Trim(); string cmdText = "INSERT INTO Student(ID, Name, Age, Gender, Class) VALUES(@ID, @Name, @Age, @Gender, @Class)"; SqlParameter[] parameters = new SqlParameter[] { new SqlParameter("@ID", GetNewID()), new SqlParameter("@Name", name), new SqlParameter("@Age", age), new SqlParameter("@Gender", gender), new SqlParameter("@Class", @class) }; SqlHelper.ExecuteNonQuery(cmdText, parameters); string cmdText2 = "SELECT * FROM Student"; DataTable dt = SqlHelper.ExecuteDataTable(cmdText2); dataGridView1.DataSource = dt; } ``` 8. 修改数据 在DataGridView的CellDoubleClick事件中,获取选中行的学生信息,并将其显示在文本框中。在修改按钮的Click事件中,使用SqlHelper工具类更新选中行的学生信息,并更新DataGridView中的数据。以下是示例代码: ```csharp private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { txtName.Text = dataGridView1.Rows[e.RowIndex].Cells["Name"].Value.ToString(); txtAge.Text = dataGridView1.Rows[e.RowIndex].Cells["Age"].Value.ToString(); cboGender.Text = dataGridView1.Rows[e.RowIndex].Cells["Gender"].Value.ToString(); txtClass.Text = dataGridView1.Rows[e.RowIndex].Cells["Class"].Value.ToString(); } private void btnUpdate_Click(object sender, EventArgs e) { int id = int.Parse(dataGridView1.SelectedRows[0].Cells["ID"].Value.ToString()); string name = txtName.Text.Trim(); int age = int.Parse(txtAge.Text.Trim()); string gender = cboGender.Text; string @class = txtClass.Text.Trim(); string cmdText = "UPDATE Student SET Name=@Name, Age=@Age, Gender=@Gender, Class=@Class WHERE ID=@ID"; SqlParameter[] parameters = new SqlParameter[] { new SqlParameter("@Name", name), new SqlParameter("@Age", age), new SqlParameter("@Gender", gender), new SqlParameter("@Class", @class), new SqlParameter("@ID", id) }; SqlHelper.ExecuteNonQuery(cmdText, parameters); string cmdText2 = "SELECT * FROM Student"; DataTable dt = SqlHelper.ExecuteDataTable(cmdText2); dataGridView1.DataSource = dt; } ``` 9. 删除数据 在删除按钮的Click事件中,使用SqlHelper工具类删除选中行的学生信息,并更新DataGridView中的数据。以下是示例代码: ```csharp private void btnDelete_Click(object sender, EventArgs e) { int id = int.Parse(dataGridView1.SelectedRows[0].Cells["ID"].Value.ToString()); string cmdText = "DELETE FROM Student WHERE ID=@ID"; SqlParameter[] parameters = new SqlParameter[] { new SqlParameter("@ID", id) }; SqlHelper.ExecuteNonQuery(cmdText, parameters); string cmdText2 = "SELECT * FROM Student"; DataTable dt = SqlHelper.ExecuteDataTable(cmdText2); dataGridView1.DataSource = dt; } ``` 以上是一个简单的学生信息管理系统的实现代码示例,希望能对你有所帮助。

相关推荐

最新推荐

recommend-type

C#基于SQLiteHelper类似SqlHelper类实现存取Sqlite数据库的方法

主要介绍了C#基于SQLiteHelper类似SqlHelper类实现存取Sqlite数据库的方法,涉及C#操作SQLite数据库的相关技巧,需要的朋友可以参考下
recommend-type

JAVA使用JDBC技术操作SqlServer数据库实例代码

本篇文章主要介绍了JAVA使用JDBC技术操作SqlServer数据库实例代码,具有一定的参考价值,有兴趣的可以了解一下。
recommend-type

韩顺平 sqlHelper 工具包

韩顺平 视频 里面 连接数据库的通用 sqlHelper 工具包,sqlhelper DBUtil 配置文件
recommend-type

微软提供的数据访问组件SqlHelper

SqlHelper的目的是从数据库获得信息或将信息保存到数据库。本实例的SqlHelper主要功能如下。 (1)执行不返回数据的T-Sql命令。例如修改会员卡信息、添加会员资料等。 (2)返回一个字段的T-Sql命令。例如获取会员...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解答下列问题:S—>S;T|T;T—>a 构造任意项目集规范族,构造LR(0)分析表,并分析a;a

对于这个文法,我们可以构造以下项目集规范族: I0: S -> .S S -> .T T -> .a I1: S -> S. [$ T -> T. [$ I2: S -> T. I3: S -> S.;S S -> S.;T T -> T.;a 其中,点(.)表示已经被扫描过的符号,;$表示输入串的结束符号。 根据项目集规范族,我们可以构造出LR(0)分析表: 状态 | a | $ ---- | - | - I0 | s3| I1 | |acc I2 | | 其中s3表示移进到状态3,acc表示接受。在分析字符串a;a时,我们可以按照以下步骤进行
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依