我有2个相同结构的列表如下:
List<OUT_POMONTOCARLOLOCALDATA> items = new List<OUT_POMONTOCARLOLOCALDATA>();
OUT_POMONTOCARLOLOCALDATA root = new OUT_POMONTOCARLOLOCALDATA { id = 1, parent = 0, text = "Initiate" };
items.Add(root);
root = new OUT_POMONTOCARLOLOCALDATA { id = 11, parent = 1, text = "Parts Selection" };
items.Add(root);
root = new OUT_POMONTOCARLOLOCALDATA { id = 12, parent = 1, text = "Assumptions" };
items.Add(root);
现在我想附加另一个来自数据库并具有相同结构的列表
CREATE_ANALYSIS_SP_POPULATE_ANALYSISDATA fetchresult = this.domain.PopulateAnalysisData(input);
The fetchResult Contains OUT_POMONTOCARLODATA
这两个列表必须是最终列表,返回值应为OUT_POMONTOCARLODATA
,其中包含所有硬编码数据库和数据库数据。
类结构如下:
public partial class OUT_POMONTOCARLOLOCALDATA
{
public System.Nullable<System.Decimal> parent { get; set; }
public System.Nullable<System.Decimal> id { get; set; }
public System.String text { get; set; }
}
public partial class OUT_POMONTOCARLODATA
{
public System.Nullable<System.Decimal> parent { get; set; }
public System.Nullable<System.Decimal> id { get; set; }
public System.String text { get; set; }
}
public partial class CREATE_ANALYSIS_SP_POPULATE_ANALYSISDATA
{
public List<OUT_POMONTOCARLOLOCALDATA> OUT_POMONTOCARLOLOCALDATA { get; set;}
public List<OUT_POMONTOCARLODATA> OUT_POMONTOCARLODATA { get; set; }
}
我尝试使用以下代码,但遇到了一些问题
items.AddRange(fetchresult.OUT_POMONTOCARLODATA);
答案 0 :(得分:0)
问题是您正在尝试使用.gitignore
将Oracle Cursor附加到其他类型的列表中。首先读取光标返回的所有行,将它们转换为C#类型,然后将它们添加到列表中。
这些方面的东西:
AddRange
此时您有一个OracleCommand cmd = new OracleCommand(connectionObject);
cmd.CommandText = "Oracle_PkrName.Stored_Proc_Name";
cmd.CommandType = CommandType.StoredProcedure;
//Add parameters that are needed
//Then add the output cursor:
objCmd.Parameters.Add("YourCursorNameInProcedure", OracleType.Cursor).Direction
= ParameterDirection.Output;
connection.Open();
cmd.ExecuteNonQuery();
OracleDataAdapter da = new OracleDataAdapter(objCmd);
da.Fill(dataset);
,因此您可以使用DataSet
将其中的每个项目转换为Enumerable.Select
。完成后,你可以这样做:
OUT_POMONTOCARLOLOCALDATA
有关如何从Oracle Cursor检索数据的信息,请参阅this question
答案 1 :(得分:0)
@SantyEssac:正确查看代码之后 我发现你错误地给出了items.AddRange(fetchresult.OUT_POMONTOCARLODATA);而不是items.AddRange(fetchresult.OUT_POMONTOCARLOLOCALDATA);
列表类型为OUT_POMONTOCARLOLOCALDATA,但您要添加OUT_POMONTOCARLODATA。
请尝试以下方法: items.AddRange(fetchresult.OUT_POMONTOCARLOLOCALDATA)