我必须编写一个 ASP.NET 应用程序来连接到我们的旧版 IBM Universe 数据库,并且我们正在使用一个名为 mv.net 的产品,它允许我们连接、读取、写入、选择、运行服务器端程序等。
我希望尽可能少的代码重复,但我也希望尽可能少的数据传输。
为了打开连接,我们必须首先使用以下代码获取对帐户的引用:
mvAccount myAccount = new mvAccount(serverName, login);
然后我们可以读取一个项目:
mvFile myInvoiceFile = myAccount.FileOpen("INVOICE");
mvItem myInvoiceRecord = myInvoiceFile.Read(invoiceID);
然后我们就完成了:
myAccount.Logout();
每个模块都有一个类,所以我可能有 INVOICE、PURCHASE_ORDER、RMA、REQ、SHIPMENT 等等。在 INVOICE 中,我可能需要访问多个表,例如 CUSTOMER、INVOICE、TERMS、SHIPVIA 等。
我计划做的是创建一个名为 TechDB 的类,它是我们数据库的名称,并将代码放在那里,所以在我的 INVOICE 类中我可以说:
TechDB connection = new TechDB();
mvItem myInvoiceRecord = connection.Read("INVOICE", invoiceID)
当我这样做时,我的 TechDB 类将打开连接,读取记录,然后一步注销。
我想我正朝着正确的方向前进,但如果不是,请告诉我。这是我的问题:
如何在我的 INVOICE 类中返回错误?例如,如果我们无法连接到数据库、无法打开文件、无法读取记录,则可能会发生错误。
如果我需要从我的 INVOICE 中获取一些数据然后读取 TERMS 表怎么办。当我刚打开一个数据库时,我不想打开一个新的连接。
我应该在所有有这个的类上调用 Dispose 方法吗?例如,mvAccount 有一个 Dispose 方法。没有文档说要调用它,但是我应该在 Logout() 之后调用它吗?
我可以在执行 myAccount.Logout() 的 TechDB 类上创建一个 Dispose 方法吗?这样连接将保持打开状态,当我完全完成它时,我可以从我的 INVOICE 类中关闭它吗?
给我一些关于处理这个问题的最佳方法的意见?我的目标是一个健壮的应用程序,它易于修改并且代码重复尽可能少。