问题标签 [datatable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
660 浏览

asp.net - 如何从一个方法返回多个 DataTable?

我有一个类,它有一个需要返回三个 DataTables 的方法。我以为我可以使用泛型,但老实说我从未使用过它们,所以我正在尝试弄清楚。这可能不是正确的事情。

我在我的班级员工中有:

在我的演示方面,我有三个网格视图:

我创建了我的 Employee 类并调用 GetEmployees 并取回我的 DataTable 列表,然后

我不确定如何进行。我已经尝试过上面的类方法定义,但我没有做对。

希望得到建议。我不想使用三种方法。我正在使用 C# 和 asp.net 2.0。

谢谢你。

0 投票
1 回答
6729 浏览

c# - C# - 如何按日期对 DataTable 进行排序

我有一个包含日期列的数据表,但我不知道如何按该列对其进行排序。有什么建议么?

0 投票
4 回答
9332 浏览

c# - C# 问题:我加载 .MDB 文件、对其进行更改并将更改保存回原始文件的最简单方法是什么?

我正在进行的项目即将完成。我正在加载一个 .MDB 文件,在 DataGrid 上显示内容并尝试在 DataGrid 上获取这些更改并将它们保存回 .MDB 文件。我还将创建一个函数,允许我从一个 .MDB 文件中获取表并将其保存到另一个 .MDB 文件中。当然,如果我不知道如何将更改保存回 .MDB 文件,我将无法执行任何操作。

我对谷歌进行了广泛的研究,但我的问题没有答案。我认为自己是这个特定主题的初学者,所以请不要让答案太复杂——我需要最简单的方法来编辑 .MDB 文件!请提供编程示例。

  1. 假设我已经与 DataGrid 建立了连接。如何获取 Datagrid 所做的更改?我敢肯定这个回答很简单。
  2. 然后我需要知道如何获取这个 Datatable,将它插入到它来自的 Dataset 中,然后获取该 Dataset 并重写 .MDB 文件。(如果有办法只插入已更改的表,我会更喜欢。)

提前谢谢您,如果您需要更多信息,请告诉我。这是我可能要问的关于这个话题的最后一件事……谢天谢地。

编辑:

我正在使用的 .mdb 是Microsoft Access 数据库。(我什至不知道有多个 .mdb 文件)

我知道我不能通过流写入器或任何东西直接写入 .MDB 文件,但有没有办法可以生成一个已经包含 DataSet 信息的 .MDB 文件?或者是否有一种方法可以将表添加到已加载到 DataGrid 中的 .MDB 文件中。必须有办法!

同样,我需要一种在 C# 中以编程方式执行此操作的方法。

编辑:

好的,我的项目相当大,但我使用单独的类文件来处理所有数据库连接。我知道我的设计和来源真的很草率,但它完成了工作。我只和我在互联网上找到的例子一样好。

请记住,我只是以另一种形式连接到 DataGrid。让我知道您是否需要 Datagrid 表单中的代码(不过我不知道您为什么需要它)。DatabaseHandling.cs 处理 2 个 .MDB 文件。所以你会在那里看到两个数据集。我最终将使用它从一个数据集中获取表格并将它们放入另一个数据集中。我只需要弄清楚如何将这些值保存到 .MDB 文件中。

有没有办法做到这一点?一定有办法...

编辑:

根据我的研究和阅读......我认为答案就在我的眼皮底下。使用“更新()”命令。现在,虽然这再次确保实际上有一种简单的方法可以做到这一点,但我仍然面临一个问题,即我不知道如何使用这个更新命令。

也许我可以这样设置:

我认为可能会这样做,但我不想手动插入任何东西。我想同时做这两个:

  • 获取在 Datagrid 上更改的信息并更新我从中获取的 Access 数据库文件 (.mdb)
  • 创建一个函数,允许我从另一个 Access 数据库文件 (.mdb) 中获取表,并将它们替换为辅助 Access 数据库文件 (.mdb)。这两个文件将使用完全相同的结构,但其中包含不同的信息。

我希望有人对此提出答案……我的项目已经完成,等待的只是一个简单的答案。

再次提前感谢您。

编辑:

好吧……好消息。我已经想出了如何查询 .mdb 文件本身(我认为)。这是代码,它不起作用,因为由于我尝试使用的 sql 命令而出现运行时错误。这将把我带到我的下一个问题。

DatabaseHandling.cs 新增功能代码:

如您所见,我实际上已经设法对连接本身执行查询,我相信它是实际的 Access .MDB 文件。正如我所说,我对文件执行的 SQL 查询不起作用,并且在使用时会产生运行时错误。

我试图执行的命令应该从 .MDB 文件中获取一个表并覆盖不同 .MDB 文件的相同类型的表。我在上面尝试的 SQL 命令试图直接从 .mdb 文件中获取一个表,然后直接将其放入另一个表中——这不是我想要做的。我想从 .MDB 文件中获取所有信息——将表放入数据表中,然后将所有数据表添加到数据集(我已经完成)。我想为两个 .MDB 文件执行此操作。一旦我有两个数据集,我想从每个数据集中取出特定的表并将它们添加到每个文件中,如下所示:

  • DataSetA >>>>----- [添加表(覆盖它们)] ----->>>> DataSetB
  • DataSetB >>>>----- [添加表(覆盖它们)] ----->>>> DataSetA

我想把那些数据集拿走,然后把它们放回它们来自的每个 Access .MDB 文件中。基本上保持两个数据库同步。

所以我的问题,修改后,是:

  1. 如何创建一个 SQL 查询,通过覆盖现有的同名表将表添加到 .MDB 文件。查询应该能够在运行时动态创建,该数组用我要添加的表名替换变量。
  2. 如何获取 Datagrid 对 DataTable 所做的更改并将它们放回 DataTable(或 DataSet),以便我可以将它们发送到 .MDB 文件?

我试图尽可能详细地说明......因为我相信我没有很好地解释我的问题。现在这个问题已经变得太长了。我只是希望我能更好地解释这一点。:[

编辑:

感谢下面的用户,我想我几乎找到了解决方法——关键字about。下面是我更新的 DatabaseHandling.cs 代码。我收到运行时错误“数据类型不匹配”。考虑到我正在尝试将这些表复制到另一个具有完全相同设置的数据库中,我不知道这怎么可能。

为什么我会收到此错误?两张表完全相同。我究竟做错了什么?最坏的情况,在插入具有不同值的完全相同的结构表之前,如何删除其他 Access .MDB 文件中的表?

伙计,我希望我能弄清楚这一点......

编辑:

好吧,我已经走了一段距离。我的问题已经演变成一个新问题,因此值得单独提问。我已经回答了我的问题,因为现在我知道如何直接对我打开的连接执行查询。谢谢你们!

0 投票
2 回答
39878 浏览

c# - C# 问题:如何将在 DataGridView 中所做的更改保存回使用的 DataTable?

我从 DataSet 中获取 DataTable,然后将该 DataTable 绑定到 DataGridView。一旦用户编辑了 DataGridView 上的信息,我如何进行这些更改并将它们放回使用的 DataTable 中,然后我可以放回我的 DataSet 中?

我想在我的 DataGrid 上创建一个保存按钮,当按下它时实际保存更改。

如果我能比这更具体,我不知道,因为这是一个相当简单的问题。

提前致谢!

如果您需要我详细说明,请告诉我。

0 投票
3 回答
13578 浏览

c# - 如何构建 OleDbCommand 查询,以便我可以从一个 .MDB 中获取表,并在另一个 .MDB 中替换它们

我正在尝试从一个 Access 数据库文件中获取表,将它们添加到另一个具有完全相同结构但具有不同信息的 Access 数据库文件中。我需要覆盖任何现有的表。我的项目几乎完成了,这是我的最后一堵砖墙。

我正在使用一个名为 DatabaseHandling.cs 的单独类文件来处理 Access 数据库文件。

这是我当前的全部 DatabaseHandling.cs 代码。暂时保持最新状态。

代码:

我只是想获取内存中的数据表并将其写入 .MDB 文件。我已经尝试这样做了 30 多个小时。

最新编辑:

好的,添加了新代码。我收到一个新的运行时错误:FROM 子句中的语法错误。

代码:

再一次,它不起作用。如果您需要更多信息,请告诉我。

0 投票
1 回答
3047 浏览

c# - 如何以不区分大小写的方式对 DataView 进行排序?

我有一个数据表。我想按列名“城市”对其默认视图进行排序。我希望排序不区分大小写。

这是我的代码:

谢谢。

0 投票
4 回答
533 浏览

c# - 为什么在尝试使用数据表更新 Access 数据库文件 (.mdb) 时出现此错误:

我已经为我的问题工作了 30 个小时。每次我修复一件事时,都会出现一个新错误。我要做的就是从内存中获取一个 DataTables 并简单地更新一个 Access .MDB 文件。这是我的代码:

编辑:

好的谢谢!但同样出现了一个新问题。相同的源代码,但是当我将表复制到 .MDB 文件时,已经复制了 10 个左右的表,然后我收到了这个运行时错误:

对于不返回任何键列信息的 SelectCommand,不支持为 DeleteCommand 生成动态 SQL。

在这个命令destDA.DeleteCommand = destCmdB.GetDeleteCommand();

这应该是我的最后一个问题,我的项目将完成。

0 投票
3 回答
1016 浏览

c# - How can I run a query on a dataset that returns different columns to the table?

I'm trying to pull some data from a SQL table in my dataset using C#.

In this case I do not need all the columns just a few specific ones, however as I am not pulling back a column with a mandatory NOT NULL, the copy of the table is throwing the exception

I'm sure I can work around this by returning the unNullable column to my table however I want to avoid returning unnecessary data.

The query I am using which throws this exception is

This excludes the mandatory column "tblLocationID". In reality though, this column is only mandatory when considering the database as a whole, not when I just need build and software detail for use in my form.

I am trying to use this query in the following manner.

I notice when browsing the preview data, Visual Studio draws columns that are not specified in my SQL including the column tblLocationID it does not however populate these columns with data.

Is there anyway I can use this data in a temporary table without importing the non-nullable aspect of the column? preferably by not pulling through the non-selected columns at all?






For completeness, here's the definition (- minus foreign key definitions) of the source table:

0 投票
1 回答
1768 浏览

.net - 如何将多个数据表合并为一个?

我有多个作为数据表打开的 excel 文件,我想在 .net 中合并所有这些数据表单个 DataTable。

例如,Apr09.xls、May09.xls、Jun09.xls

都有数据如下

Apr09.xls

May09.xls

新的数据表如下

如何创建这个。

0 投票
2 回答
32134 浏览

.net - 错误:.ColumnName 和.ColumnName 具有冲突的属性:DataType 属性不匹配

我正在尝试使用 DataTable.Merge() 选项合并多个 excel 文件

但是在合并时会出现以下错误

这是因为 excel 中的一列被读取为文本,另一列被读取为双精度,而两者都有数值。

为了避免这种情况,我还在连接字符串中提到了 IMEX=1,但仍然出现此错误。