使用Winform实现数据库增删改查功能 (winform数据库增删改查)

Winform是一种面向对象的Windows应用程序设计开发框架,它可以与数据源进行交互,提供各种控件来构建窗体应用程序,也可使用ADO.NET在Winform中进行数据库操作。在本文中,我们将介绍如何。

1. 建立数据库

我们需要建立一个数据库。我们可以使用SQL Server Management Studio(SS)来创建一个名为“testdb”的数据库。建立一个名为“users”的表,包含“id”(int,主键),“name”(nvarchar(50)),“age”(int),“eml”(nvarchar(50))四个字段。

2. 连接到数据库

使用Visual Studio创建一个Windows Forms应用程序,并连接到数据库。我们使用.net Framework中的SqlConnection类连接到我们的数据库。以下是连接字符串的示例代码:

string connectionString = @”Data Source=.\SQLEXPRESS;Initial Catalog=testdb;Integrated Security=True”;

在此示例中,我们使用本地SQL Server实例,因此,“Data Source”设置为“.\SQLEXPRESS”。如果您的SQL Server实例使用不同的名称,请进行相应的更改。接下来,我们连接到数据库:

SqlConnection connection = new SqlConnection(connectionString);

connection.Open();

3. 数据库操作

以下是如何实现数据库操作的示例代码:

3.1 查询数据

我们可以使用Select语句查询数据库中的数据。以下是如何查询“users”表中的数据的示例代码:

string query = “SELECT * FROM users”;

SqlCommand command = new SqlCommand(query, connection);

SqlDataReader reader = command.ExecuteReader();

List users = new List();

while (reader.Read())

{

User user = new User();

user.Id = int.Parse(reader[“id”].ToString());

user.Name = reader[“name”].ToString();

user.Age = int.Parse(reader[“age”].ToString());

user.Eml = reader[“eml”].ToString();

users.Add(user);

}

在这个示例中,我们使用Select语句获取数据库中的数据,然后使用SqlCommand类执行查询,并使用SqlDataReader类读取查询结果。我们使用一个List列表来保存查询结果。

3.2 插入数据

使用Insert语句插入数据。以下是将数据插入“users”表的示例代码:

string query = “INSERT INTO users (name, age, eml) VALUES (@Name, @Age, @Eml)”;

SqlCommand command = new SqlCommand(query, connection);

command.Parameters.AddWithValue(“@Name”, user.Name);

command.Parameters.AddWithValue(“@Age”, user.Age);

command.Parameters.AddWithValue(“@Eml”, user.Eml);

int result = command.ExecuteNonQuery();

在这个示例中,我们使用Insert语句向数据库中的“users”表中插入一条记录。我们使用SqlCommand类执行Insert语句,并使用AddWithValue方法设置参数。SqlCommand类的ExecuteNonQuery方法活检索一个结果,则我们可以通过检查返回结果的行数确定是否正确执行了操作。

3.3 更新数据

使用Update语句更新数据。假设我们已知要更新的“id”并且用户想要将“name”字段更新为“new name”。以下是如何更新数据的示例代码:

string query = “UPDATE users SET name = @NewName WHERE id = @Id”;

SqlCommand command = new SqlCommand(query, connection);

command.Parameters.AddWithValue(“@Id”, id);

command.Parameters.AddWithValue(“@NewName”, newName);

int result = command.ExecuteNonQuery();

在这个示例中,我们使用Update语句将“users”表“id”列为“id”的记录中的“name”列更新为“new name”。我们使用SqlCommand类执行Update语句,并使用AddWithValue方法设置参数。SqlCommand类的ExecuteNonQuery方法将检索一个结果,我们可以通过检查返回结果的行数确定是否正确执行了操作。

3.4 删除数据

使用Delete语句删除数据。假设我们已知要删除的“id”是“1”。以下是如何删除数据的示例代码:

string query = “DELETE FROM users WHERE id = @Id”;

SqlCommand command = new SqlCommand(query, connection);

command.Parameters.AddWithValue(“@Id”, id);

int result = command.ExecuteNonQuery();

在这个示例中,我们使用Delete语句删除“users”表中“id”列为“id”的记录。我们使用SqlCommand类执行Delete语句,并使用AddWithValue方法设置参数。SqlCommand类的ExecuteNonQuery方法将检索一个结果,我们可以通过检查返回结果的行数确定是否正确执行了操作。

4. 显示数据

我们需要在Winform中展示数据库操作的结果。我们可以使用DataGrid控件来展示数据。以下是如何使用DataGrid控件展示查询结果的示例代码:

dataGridView1.DataSource = users;

在这个示例中,我们使用DataGridView控件展示查询结果。我们把查询结果赋值到DataGridView的DataSource属性上。当我们执行查询和其他操作时,DataGridView控件将反映用户实际操作了什么。

相关问题拓展阅读:

  • C# WinForm开发书店管理系统第五节
  • winform中(当数据库的数据有变化时)datagridview 刷新的问题

C# WinForm开发书店管理系统第五节

Visual Studio版本:Enterprise 2023

.net 版本:.NET Framework4.5

Sqlserver版本:2023R2

本节内容

在第四节中,主要讲了登录用户的增删改查页面,本节课,我们来看一下书籍的录入。简单的来说就是书籍进销存之前,先要录入书籍信息,然后才可以对数据进行进销存操作。

新建书籍表

首先要新建书籍,基本信息为书号,书名,出版社,作者和售价。这里以书号作为唯一值,不能重复。数据表如下:

BookID:书籍ID,int类型,自增。

BookNO:书号,主键,唯一值。

BookName:书名

BookPress:出版社

BookAuthor:作者

CreateTime:创建时间

BookCount:数量

BookPrice:价格

BookStatus:状态,1正常,0已下架

页面设计

书籍管理中新增书籍列表菜单。

书籍列表中可以查看当前所有书籍的信息,可以新增,修改和删除。

功能代码

新增页面可以添加书籍信息,只需填写书号,出版社,书名,作者和价格,数量是不需要填写的,后面可以根据进销自动计算。防止人工输错。保存代码:

因为新增和编辑都是同一个页面,所以会有Type的参数来区分新增和编辑,Type等于1是新增,Type等于2是编辑。页面的关闭,拖动前面章节有介绍就不重复了。

上面是列表页面中的新增和编辑,可以看到新增时,Type的值给的是1,更新时Type的值是2,同时还给了BookID,这样就可以通过BookID找到对应书籍的信息。

运行结果

总结预告

回复“ C#WinForm界面设计教程 ”获取gitee源码下载地址,主要是WinForm基本控件的使用讲解。这个基本控件的使用都有介绍。

winform中(当数据库的数据有变化时)datagridview 刷新的问题

winform有一个特点,只要你将数据源变逗橘化了,datagridview自然就变化了。

你如果不想每隔几秒刷,我这有两个办法。

一,记录你每次修改每张表的时间。也就是你对这个表中的数据进行增删改操作,就在数据库里把这个表的更新时间记录一下。然后在打开这个窗体进行查询的时候,同时获得这个时间,剩下的,你在timer里去拿你查询时记山颂团录的这个时间去和表中记录的时间去比较,不一样了,就说明改变了,你就重新读一遍数据去刷新grid

二,如果你的SQL版本是2023及以上,可以利用SqlDependency来实现,关于这个类的具体用法你可以百度一下,我说一下功能,就是建立一个数据库依赖,当数据库表一旦发生变化时,会自动触发.net程序中的一个方法,在这个方法中你去重樱模新获取数据,更新你的数据源。

关于winform数据库增删改查的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

香港服务器首选树叶云,2H2G首月10元开通。
树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/258588.html<

(0)
管理的头像管理
上一篇2025-05-02 07:29
下一篇 2025-05-02 07:30

相关推荐

  • 增值电信业务经营许可证对IDC有多重要,如何办理?

    增值电信业务经营许可证是IDC服务商合法运营的核心凭证,它直接决定了机房能否接入骨干网、客户能否放心托管业务,以及服务商自身能否长期稳定发展,许可证是IDC进入市场的硬门槛互联网数据中心业务属于增值电信业务中的B1类,依据工信部《电信业务经营许可管理办法》,任何从事服务器托管、虚拟主机、云服务等业务的企业,必须……

    2026-07-26
    0
  • 站群服务器一个IP放几个网站合适?,怎么选

    站群服务器一个IP放3-5个网站是大多数情况下的最佳平衡点,但具体数量需根据网站权重、内容质量及IP资源成本灵活调整,这个结论基于搜索引擎对同IP站点的关联判定逻辑,以及站群运营的长期实践,如果你刚接触站群,可能会纠结于IP分配,但核心原则是:不要让搜索引擎轻易识别出这些网站属于同一实体,站群IP分配的底层逻辑……

    2026-07-26
    0
  • DDoS攻击和CC攻击有什么区别,怎么防御?

    DDoS攻击和CC攻击最核心的区别在于攻击目标不同:DDoS攻击主要消耗网络带宽和基础设施资源,而CC攻击专门针对应用层逻辑,耗尽服务器CPU和数据库连接数,两者从原理到防御手段完全不同,攻防视角下的本质差异攻击目标:一个砸门,一个撬锁DDoS攻击(分布式拒绝服务)瞄准的是网络层和传输层,通过大量伪造数据包或畸……

    2026-07-26
    0
  • 服务器UEFI和Legacy启动模式有什么区别,哪个好

    UEFI(统一可扩展固件接口)是取代传统Legacy BIOS的现代启动标准,在服务器领域,UEFI凭借更快的启动速度、超过2TB的磁盘支持、安全启动(Secure Boot)以及丰富的预启动网络功能,成为主流服务器的默认配置;而Legacy BIOS作为兼容性模式,仅在需要运行老旧操作系统或特定硬件时保留,U……

    2026-07-26
    0
  • 站群服务器为什么比普通服务器贵,哪家性价比高?

    站群服务器之所以比普通服务器贵,核心在于其为了支撑大量独立站点同时稳定运行,在硬件隔离、独立IP资源池、高防御网络架构以及合规运维上投入了普通服务器数倍的成本,这些硬性支出直接反映在了最终定价上,硬件配置的“冗余”设计决定成本基线站群服务器与普通服务器最直观的差异体现在硬件层面,普通服务器往往面向单一应用或少量……

    2026-07-26
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注