NetDbExplorer:mj10777.DataBase 类演示






1.04/5 (11投票s)
2004年1月5日
6分钟阅读

38082

1166
使用 mj10777.DataBase 连接、创建(数据库/表)、读取和填充表、更新、插入和删除记录,并在 TreeView / ListView 应用程序中显示结果。
我想提交我的 mj10777.DataBase 和 NetDbExplorer 作为演示示例
mj10777.DataBase 是一个类集合,用于在 .NET Framework / .Net Framework.Compact 下提供数据库支持
供私人使用,您可以自由地处理此源代码,否则请注意本文末尾的版权声明。
源代码有详细的文档记录,因此本文将简短(请参阅下面的文档说明)
NetDbExplorer_src.zip 包含 2 个 zip 文件,一个用于 PC,一个用于 Compact
NetDbExplorer_demo.zip 包含一个 PC 版可免费使用的 exe
(Compact 版 exe 包含在 NetDbExplorer_src.zip 中)
请注意:我为我的项目使用了不同的目录(Microsoft.Net 和 Microsoft.Net.Compact)- Zip 中的目录具有相同的名称!
这也可以被视为编写一个可在两个平台上运行的项目的方法。
PC 项目中的 \DataBase\*.* 目录可以(并且已经)被复制(通常)到 Compact 项目中,反之亦然。
在 Compact 项目配置中使用预编译器指令“COMPACT”可以在一个 .cs 文件中为两个平台编写代码,而不会出现编译器警告/错误。(当然,如果您忘记设置……则不适用)
有关如何执行此操作,请参阅文档。
DataBase 类
当我看到 Visual Studio Designer 2002 对我的 Access Lotto 数据库做了什么时,“失望”已不足以形容。
我(与 George Tasker - Remstar 一起)为 wxWindows(http://www.wxwindows.org/)编写了一个类来分析具有表/字段结构的数据库(wxDB/wxTable),我对 Visual Studio 造成的混乱以及每个表都需要完成的工作感到不满。
然而,在仔细研究了 DataSet / DataTable / DataView 和 DataRow 后,我对 .NET Framework 所取得的成就非常满意。其结果和用法与我们在 wxWindows 下使用 ODBC 所做的非常相似(我编写了 wxWindows/demos/dbbrowse,它的功能与 NetDbExplorer 相同)。
尽管如此,所有这些连接字符串和引擎类型都必须被解决,因为我的一个朋友不知道他是否想从 dBase 切换到 Access 或 Excel。结果就是我的第一个 .NET 项目,名为 DbBrowser(Google:搜索了网络上的 dbbrowser。结果 1 - 10,共约 4,470 条。搜索耗时 0.17 秒),它将所有连接字符串/引擎类型放入一个类中。
起初,我为 Odbc 和 OleDb 各编写了一个类,因为 Odbc 实际上并不需要。
然后是 Visual Studio 2003 和用于 Compact 的 SqlCe,以及 NTEXT 相对于 VARCHAR 的优点(至少 UNSIGNEDTINYINT 现在是 TINYINT),所以我为此编写了一个额外的类。
厌倦了这一切,我开始编写扑克牌游戏逻辑,并在此过程中学习文档系统。
其结果是我的关于语言支持的文章,也于去年圣诞节前在此发表。
接下来的步骤当然是记录 Odbc/OleDb/SqlCe 类 - 但为这三个类分别记录是不可能的。
将它们全部放在一个 DataBase.cs 中,并使用“ServerType”参数(Odbc,OleDb,SqlCe/SqlServer)然后同时编译 PC 和 Compact 平台(在此过程中记录所有内容)要容易得多。在除夕/新年之前的 4 小时内,一切都完成了并且能够工作。您可以想象我当时做了什么。
该类的主要目标是
简单使用该类来连接、创建(数据库/表)、读取和填充表、更新、插入和删除记录。
OleDb 和 SqlCe 没有直接的方法来读取 DataSet 中找到的所有表。
使用“SELECT * FROM INFORMATION_SCHEMA.TABLES”,该类将在连接时收集现有表的名称,并在读取时填充具有这些表的 DataSet。
private const string s_DataSetNamespace = "MainFrame"; private const string s_mj10777_Company = "mj10777.de.eu"; private const string s_mj10777_Folder = "file://My/ Documents\\"+s_mj10777_Company+"\\"; private const string s_DocumentFolder = s_mj10777_Folder+s_DataSetNamespace+"\\"; private int ip_EngineType = 5; // 5= Access ;ServerType=1 : OleDb private DataBase db_DataBase = null; public FormMainFrame() { InitializeComponent(); i_Language = 1; // Call Method to create sa_CreateTables, if needed db_DataBase = new(DataBases_DocumentFolder,s_DataSetNamespace,ip_EngineType,1,ip_Language); dset_MainFrame = db_Table.OnReadDBtoDataSet(); // Connects to Database and Disconnectd after reading //DataSet now has all Tables found in the DataBase // Save Access Database as Excel File db_Table.i_EngineType = 24; // (Excel 8.0 and 9.0 Workbooks) // Connects to Database and Disconnectd after writing db_Table.OnCreateDBfromDataSet(dset_MainFrame,true); } // public FormMainFrame()
测试 PC 和 Compact 的需求导致创建了
NetDbExplorer
选择此名称的原因是:Google(2004 年 1 月 5 日):您的搜索 - NetDbExplorer - 未匹配任何文档。
此演示的主要目标是
- 测试 mj10777.DataBase.DataBase 类
- 用于分析 PC 和 Compact 数据库以进行 Framework 开发的工具(因此是 System.String、System.Int32 等)
此演示的主要功能是
- 读取和写入没有用户/密码保护的数据库
- 用于更改 DataSet / Table / Field 名称的工具
文档
cs 文件为希望使用这些类的程序员提供了详细的文档。
Zip 文件中包含了一个 nDoc 配置文件和生成的帮助文件。
每个类在其类概述中都有完整的描述,说明了其预期达到的目标。
此处包含许多指向类方法的引用,并附有使用这些类以及 DataSet、DataTable、DataView 和 DataRow 一般用法的代码示例。
目的是生成一个帮助文件,其中包含有关 ODBC、OleDb、SqlCe 和过去 6 个月开发的某些编程技术的所有收集信息。
我还将某些 .NET Framework 的方面加入到了这个帮助文件中,这些方面我觉得很有趣。
我试图充分利用 Visual Studio 提供的 XML 文档功能,构建一个关于“什么”、“在哪里”和“如何”完成事情的来源(更不用说:“我当时是怎么想的?”)。
已知的问题、不起作用的事情以及对未来发展的希望也已记录在案。
支持
我非常愿意在需要时进一步支持此类。
如果有什么不起作用需要修复,请给我发电子邮件(如果可能,附上数据库样本)
如果您希望添加功能,请给我发电子邮件
免费支持的条件当然是供私人使用(请参阅下面的版权)
如果未尊重其他产品的版权,则无法提供支持!
如果有人更改了这些类以支持其他系统(例如 PC 上的 Sql-Server),请将更改发送给我。
所有一般性更改将在本文中重新发布。
版权声明
Mark Johnson, Berlin, Germany
mj10777.de.eu
Copyright © 2003, 2004
供私人免费使用,否则请向我的(电子邮件)PayPal 账户捐赠或支付版税。
E-Mail:mj10777@mj10777.de
关注点
我非常乐意听到对此文章的任何反馈。如果电子邮件
没有丢失在垃圾邮件箱中,我也会回复。
历史
到目前为止没有
备用链接
本文和文件可以在以下位置阅读和下载
http://www.mj10777.de/NETFramework/Articels/NetDbExplorer/index.htm