gpt4 book ai didi

c# - 如何对 DataTable 对象执行复杂的 SQL 查询?

转载 作者:行者123 更新时间:2023-11-30 18:24:32 24 4
gpt4 key购买 nike

我正在用 C# 编写一个 Excel 加载项,我在其中处理包含在不同 DataTable 对象中的数据。我想提供一个函数来对数据执行 SQL 查询,能够在 where 中引用其他表中的数据并按子句排序(例如,使用连接)。

这样的查询的一个例子是

SELECT name
FROM Table1
WHERE id = Table2.id AND Table2.age > 18

这个问题是 DataTable 不知道其他 DataTable 的存在,所以(到目前为止我知道)没有这样的类中的方法。另外,我不能使用 LINQ 之类的东西,因为查询将由插件用户在 excel 中编写。

将数据复制到内存数据库是否是一个好的解决方案,其中每个 DataTable 都映射到一个表?这将如何在性能方面发挥作用?有更简单的解决方案吗?

最佳答案

就 SQL 查询而言,您在选择表时缺少表引用,更正后的查询如下所示

SELECT name
FROM Table1, Table2
WHERE Table1.id = Table2.id AND Table2.age > 18

如果 Table2 中有相同的命名属性,则使用 Table1.name。但是,不建议在联接中仅使用 WHERE 条件而不指定联接属性 read this question .使用 JOIN

SELECT Table1.name
FROM Table1 INNER JOIN Table2 ON Table1.id = Table2.id WHERE Table2.age > 18

关于c# - 如何对 DataTable 对象执行复杂的 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31089857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com