以下查询连接每行的列结果。我需要使用某种分隔符或唯一的 row[i] 结果来分隔列。
询问
"exec rfc_read_table @query_table='VBAK', @rowcount=50, @FIELDS= '<FIELDS><RFC_DB_FLD xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/"><FIELDNAME>MANDT</FIELDNAME></RFC_DB_FLD><RFC_DB_FLD xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/"><FIELDNAME>VBELN</FIELDNAME></RFC_DB_FLD></FIELDS>,@fields=@flds output'"
。网
using (SAPCommand cmd = conn.CreateCommand())
{
cmd.CommandText = //See query above
SAPDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
Console.Write(" {0} ", rdr[0]);
//Console.Write(" {0} ", rdr[1]);//null...
Console.WriteLine();
}
更新
我可以按照
DataTable dtFields = (DataTable)cmd.Parameters["@flds"].Value;
(更新的查询)返回的索引来分隔列
该过程非常笨拙并且抛出异常,因为当查询中的最后一列返回空结果时索引变得不可靠(还发现了错误的长度指示符)。我解决了大部分问题,但这太糟糕了。是否有更好的支持方法来使用 .NET 查询 SAP?