MySQL 和 C#.NET DataGridView、更新、插入和删除

Posted

技术标签:

【中文标题】MySQL 和 C#.NET DataGridView、更新、插入和删除【英文标题】:MySQL and C#.NET DataGridView, Updates, Inserts and Deletes 【发布时间】:2011-09-29 09:24:53 【问题描述】:

前几天我开始使用 Windows 窗体在 C#.NET 中进行项目,距离我上次使用 Windows 窗体已经有一段时间了,所以我感觉有点生疏了。

首先我应该指出,我正在使用 Visual C# 2010 Express,它不支持数据绑定的 GUI 向导(如果您喜欢 MS Access 或本地存储的数据库文件,它确实支持),我需要与mysql 数据库并使其与 DataGridView 配合使用。

我的问题源于我不太清楚如何进行更新和删除。我发现的大多数在线资源似乎只是指运行数据绑定向导,这是我无法做到的(因为我正在运行 Visual C# 2010 Express)。

现在,我已经能够从数据库中选择数据而没有任何重大问题(使用 MySqlDataAdapterBindingSourceDataTable)但是当我尝试使用 MySqlDataAdapter.Update(<DataTable>) 时没有任何反应。

我假设我需要做一些设置工作,这些工作通常作为“只使用向导”而被手动放弃。那么,有没有人有一个简单的例子来说明我需要做什么才能进行更新、插入和删除?有或没有存储过程,两种方式都很好(尽管我最终可能会在完成的程序中使用存储过程)。

【问题讨论】:

这些链接可能会有所帮助:***.com/questions/1518946/…***.com/questions/4663632/…***.com/questions/832874/… 我已经查看了这两个并尝试了几个小时以使我的代码正常运行,但事实并非如此。烦人的部分是没有例外之类的,它什么都不做。所以是的,我试过设置UpdateCommand,我试过打电话给EndEdit(),我都试过了,就是不行。但是选择工作得很好...... 【参考方案1】:

我建议您不要使用 VS Toolbox 中的那些 DragDroppable DataAdapter 或 BindingSources,只需将您的项目适当地分层到不同的项目中,每个项目都有自己的关注点,例如数据访问、业务逻辑和演示 (GUI)。

在这里查看我的答案:MVC3 and Entity Framework

如果您拥有可靠的分层/m 层架构,您会发现数据管理逻辑仅属于数据访问层,而 UI 只需询问通过业务逻辑需要什么。

【讨论】:

+1 - 如上所述。仅仅因为您使用的是 Windows 窗体并不意味着您应该忘记体面架构的基础知识。您可以将数据网格绑定到任何集合类型 - 因此 List 足以填充数据网格。然后,您可以在数据层中编写逻辑来执行对数据库等的更新。 谢谢,这实际上是我最终做的事情,我自己写了一堆代码。它可能与 MS 的最佳实践理念不符,但确实有效……

以上是关于MySQL 和 C#.NET DataGridView、更新、插入和删除的主要内容,如果未能解决你的问题,请参考以下文章

C#.NET连接mysql方法

用C#.net连接MYSQL,怎么连接?还要安装啥吗?急!!!

C# 和 MySQL .NET 连接器 - 有啥方法可以防止泛型类中的 SQL 注入攻击?

MySQL C++.net 交互

MySql Query和asp.net c#之间的结果差异

为啥 MySQL 使用多线程,而 Oracle 和 PostgreSQL 使用多进程