我有一个 WCF 服务,它是 VB 应用程序的外观。我的 VB 应用程序需要一个 ADODB.Recordset 作为我的输入参数。 我已经为此方法编写了单元测试,但我不知道如何手动创建用于测试目的的记录集。
我想出了这个(在网上搜索了很长时间之后):
ADODB.Recordset tempRS = new ADODB.Recordset();
tempRS.Fields.Append("Field1", ADODB.DataTypeEnum.adChar);
tempRS.Fields.Append("Field2", ADODB.DataTypeEnum.adInteger);
但是这个记录集中没有数据。或者再试一次:
ADODB.Recordset temp = new ADODB.Recordset();
temp.Open();
temp.AddNew("Field1", "data for field 1");
temp.AddNew("Field2", "1");
但我在 temp.Open()
语句中收到一条错误消息,提示 The connection cannot be used to perform this operation。它在此上下文中已关闭或无效。
有人能指出我正确的方向吗?我已经阅读了 msdn
但没有找到适合我需要的示例。
提前致谢!
最佳答案
我亲自编写了 C# 单元测试,其中我成功地实例化了一个真正的 ADODB.Recordset
并用数据填充它,所以我可以向你保证这是可能的。
关键是在断开模式下打开记录集。这为您提供了与 DataTable
等效的 ADO,并且不需要数据库连接。您可以通过将游标类型显式设置为静态来执行此操作,例如
temp.Open(CursorType: CursorTypeEnum.adOpenStatic);
注意:静态游标也可以在连接模式下使用。但是,它们是唯一在断开连接模式下有意义的游标类型,这就是您需要明确指定它的原因。
关于wcf - 以 ADODB.Recordset 作为输入参数的 WCF 方法的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20092257/