如何将多行添加到C#Net中手动创建的ADODB.Recordset
我正在尝试创建一个新的C#.Net COM+应用程序,以便与旧的VB6应用程序进行通信。到目前为止,我的一切工作正常,我可以返回各种对象,包括ADODB.Recordset 但是,我只能向该记录集中添加一行数据,如果我尝试添加额外的行,则只有最后一行实际返回到VB6应用程序如何将多行添加到C#Net中手动创建的ADODB.Recordset,c#,.net,vb6,adodb,recordset,C#,.net,Vb6,Adodb,Recordset,我正在尝试创建一个新的C#.Net COM+应用程序,以便与旧的VB6应用程序进行通信。到目前为止,我的一切工作正常,我可以返回各种对象,包括ADODB.Recordset 但是,我只能向该记录集中添加一行数据,如果我尝试添加额外的行,则只有最后一行实际返回到VB6应用程序 // List of data List<string> names = new List<string> { "Fred", "John", "Jane" }; // Create ADODB R
// List of data
List<string> names = new List<string> { "Fred", "John", "Jane" };
// Create ADODB Recordset
var adors = new ADODB.Recordset();
adors.Fields.Append("name", ADODB.DataTypeEnum.adLongVarChar, 250, FieldAttributeEnum.adFldIsNullable);
adors.Open(System.Reflection.Missing.Value, System.Reflection.Missing.Value, CursorTypeEnum.adOpenDynamic, LockTypeEnum.adLockOptimistic, -1);
// Loop through data and add a row for each one
foreach (var name in names)
{
adors.AddNew();
adors.Fields["name"].Value = name;
adors.Update(System.Reflection.Missing.Value, System.Reflection.Missing.Value);
}
// Return Recordset
return adors;
//数据列表
名单名称=新名单{“弗雷德”、“约翰”、“简”};
//创建ADODB记录集
var adors=new ADODB.Recordset();
adors.Fields.Append(“name”,ADODB.DataTypeEnum.adLongVarChar,250,fieldattributenum.adFldIsNullable);
adors.Open(System.Reflection.Missing.Value、System.Reflection.Missing.Value、CursorTypeEnum.adOpenDynamic、LockTypeEnum.AdLockOptimization,-1);
//循环遍历数据并为每个数据添加一行
foreach(名称中的变量名称)
{
adors.AddNew();
adors.Fields[“name”]。Value=name;
adors.Update(System.Reflection.Missing.Value,System.Reflection.Missing.Value);
}
//返回记录集
回归崇拜者;
对于上面的示例,VB6将收到一个记录集,其中包含一行数据,即“Jane”
有人能给我解释一下如何在C#中向ADODB.Recordset添加多行吗?再仔细研究一下,我就能找到答案了。您需要将记录集绝对位置设置为1
// Set recordset back to starting position
adors.AbsolutePosition = (PositionEnum)1;
下面是完整的示例
// List of data
List<string> names = new List<string> { "Fred", "John", "Jane" };
// Create ADODB Recordset
var adors = new ADODB.Recordset();
adors.Fields.Append("name", ADODB.DataTypeEnum.adLongVarChar, 250, FieldAttributeEnum.adFldIsNullable);
adors.Open(System.Reflection.Missing.Value, System.Reflection.Missing.Value, CursorTypeEnum.adOpenDynamic, LockTypeEnum.adLockOptimistic, -1);
// Loop through data and add a row for each one
foreach (var name in names)
{
adors.AddNew();
adors.Fields["name"].Value = name;
adors.Update(System.Reflection.Missing.Value, System.Reflection.Missing.Value);
}
// Set recordset back to starting position
adors.AbsolutePosition = (PositionEnum)1;
// Return Recordset
return adors;
//数据列表
名单名称=新名单{“弗雷德”、“约翰”、“简”};
//创建ADODB记录集
var adors=new ADODB.Recordset();
adors.Fields.Append(“name”,ADODB.DataTypeEnum.adLongVarChar,250,fieldattributenum.adFldIsNullable);
adors.Open(System.Reflection.Missing.Value、System.Reflection.Missing.Value、CursorTypeEnum.adOpenDynamic、LockTypeEnum.AdLockOptimization,-1);
//循环遍历数据并为每个数据添加一行
foreach(名称中的变量名称)
{
adors.AddNew();
adors.Fields[“name”]。Value=name;
adors.Update(System.Reflection.Missing.Value,System.Reflection.Missing.Value);
}
//将记录集设置回起始位置
adors.AbsolutePosition=(PositionEnum)1;
//返回记录集
回归崇拜者;
adors.Fields[“name”].Value=membership.MemberNumber;你确定这句话正确吗?您实际上没有为ADODB记录集指定名称。@Thangadurai不,这是不正确的。请看我的最新更新。这是一些进入示例的真实代码。我也找到了我补充的问题的答案。