我希望能够使用数据集作为内存数据存储。我希望能够使用SELECT,INSERT,UPDATE和DELETE,CREATE TABLE,DROP TABLE,ALTER TABLE ADD COLUMN,ALTER TABLE DROP COLUMN,并支持约束PRIMARY KEY,UNIQUE,NOT NULL,FOREIGN KEY,REFERENCES。如何针对数据集执行SQL语句
回答
有人以商业产品的形式使其成为现实。 http://www.queryadataset.com 它支持我最初询问的有关 http://www.queryadataset.com/Documentation/Expressions/tabid/80/Default.aspx的所有功能。
对不起,这不是一个DataSet的用途。
你为什么要这样做?
谁说这不是DataSet的用途? DataSet具有完整的对象模型,众所周知的接口,设计器支持和可用的调试可视化器。为什么我会重新发明轮子以显示有关“DataSet”的信息(如果存在)? – JJS 2009-07-13 23:52:17
谁说的?过去七年使用它的经验,以及阅读微软和其他人对此的看法。没有人曾经建议DataSet是发布查询的对象。过滤和排序(使用DataView)yes,但不是通用查询平台。这就是SQL Server Express和Compact的用途。 – 2009-07-14 00:01:57
这是.Net?什么版本? 3.5及更高版本让你在任何IQueryable的
是的。除了.Net以外,DataSet在我所知的任何API中都不可用。 IQueryable不支持修改对象模式的概念。如果我错了,请纠正我,但Linq没有定义任何查询操作符来操纵查询对象的模式。 – JJS 2009-07-13 23:45:47
运行类似SQL的LINQ查询听起来像是你需要一个在内存数据库,而不是一个数据集。
如果您想在内存数据存储上测试数据库命令,那么DataSet不是一种可行的方式,因为它不是内存中的关系数据库引擎。正如其他人所说,你可以在DataSet上进行各种查询,而不是DDL命令。我查看了各种内存或嵌入式数据库引擎(SqlLite,HSQL,Firebird),但从未接近找到一种在内存中单元测试Sql Server代码的好方法,通常是由于这些引擎的局限性(例如,没有存储过程)。
如果您需要为您的应用程序提供嵌入式数据库,请查看这些产品。 如果您需要测试Sql Server命令,您必须在Sql Server的实例上运行它们(考虑Express,轻量级和免费)。
你想要LINQ!它可以执行您根据您的数据所要求的所有操作......并且更多地为您提供性感觉,它可能不应该那么容易。
它会动摇你的盒子(如果你习惯反正ADO.NET)
也期待在LINQ2SQL,因为它提供多一点,当谈到写作/内存中的数据读取你的背部到数据库。 ..或者linq2xml如果你想使用web服务。
您不能这样做,因为DataSet是您检索的数据的客户端上的内存中表示形式。
这也是不可知该数据的提供者。因此,您无法使用与数据来自的数据源相同的语法。
的DataSet有它的过滤数据自己的语法,但它没有被大量基于SQL。
相反,您应该使用LINQ to DataSets,这将为您在DataSet中查询数据提供更类似于SQL的体验。
如果您不想使用LINQ(例如.NET 2.0),则有一个“select”方法,允许您使用“where-clause-like”语法提供过滤器。下面是一个MSDN链接:
http://msdn.microsoft.com/en-us/library/system.data.datatable.select
这是一个DataTable方法,所以我不知道,它提供了所有你要寻找的。此外,这只允许您选择数据集的一个子集,而不执行更新/插入/删除。
您可能需要考虑使用临时表。如果您的数据必须在数据库连接之间共享,甚至是标准表。
如果您正在寻找内存数据集以获取它们提供的速度,您可能需要查看内存中的表存储(MySQL和PostGreSQL可以执行此操作,而其他操作可以通过设置表存储来欺骗)例如在RAM磁盘上的空间)。
短寿命表经常被忽略,但它们实际上非常有帮助。
- 1. 如何执行SQL语句?
- 2. 执行SQL语句
- 3. SQL执行语句
- 4. 对sqlite3数据库执行reptitive语句
- 5. 针对网格运行SQL语句
- 6. LINQ分页语句如何针对Oracle数据库实际执行?
- 7. SubSonic如何执行SQL语句?
- 8. 如何执行PL/SQL表语句
- 9. 如何使用mDb.update执行SQL语句?
- 10. oracle如何执行sql语句?
- 11. 执行的SQL语句
- 12. Sql语句不执行
- 13. 针对数据类型的SQL Server 2008批量更改语句
- 14. 如何用IF语句执行函数?
- 15. Oracle数据库语句执行失败
- 16. 语句执行
- 17. 收集SQL语句
- 18. 如何查看使用SQL Express时执行的SQL语句?
- 19. 如何监视SQL Server 2005上执行的sql语句
- 20. MSYSGIT BASH:针对MS SQL Server执行SQL
- 21. 如何在PHP中对函数执行if语句?
- 22. 如何针对类型化数据集执行自定义命令
- 23. 如何使用sql语句从数据集中获取一些行?
- 24. 在执行SQL语句时执行If语句时出现问题 - c#
- 25. 如何针对给定的查询执行SQL数据透视表?
- 26. SQL - 保证执行所有语句
- 27. 执行sql语句时出错
- 28. 执行错误大SQL语句
- 29. 在SQL中执行包含select语句
- 30. CDbCommand未能执行SQL语句:SQLSTATE [42S22]
你可以扩展你为什么要这么做吗?这可能有助于产生更有用的答案。 – 2009-07-08 15:39:46
很多人都回答JJS的问题,真是太棒了。但是,如果他回复告诉我们他真正想要的东西,情况会更好。如果他曾回复过,那么看看有多少答案接近他想要的就会很有趣。 – 2009-07-08 15:56:12
对不起。没有打开此问题的电子邮件更新。我会欢迎一个私人消息,说我的答复不是即将到来的。 询问DataSet结构的对象模型和接口已经很强大,并且很好理解。如果替换DataSet和DataTable对象及其组成部分将减少您的困惑,那么我接受有关这方面的建议。 – JJS 2009-07-13 23:42:19