如何用XML编写SQL数据

时间:2014-10-21 23:18:57

标签: c# xml axapta xmlwriter

我是C#编程的新手,我要做的是从Dynamics中获取一些我没有问题的数据,然后通过方法将它传递给Visual Studio类,所有这些都是为了创建XML具体结构和财政数据。

XML结构:

<Catalogo Version="1.0" RFC="SIN120706RX7" TotalCtas="98" Mes="07" Ano="2014">
   <Ctas CodAgrup="1" NumCta="100" Desc="CAJA" Nivel="1" Natur="D"/>
   <Ctas CodAgrup="2" NumCta="120" Desc="BANCOS" Nivel="1" Natur="D"/>
   <Ctas CodAgrup="2.1" NumCta="1200001" Desc="BANCOMER CTA 0190864250" SubCtaDe="120" Nivel="2" Natur="D"/>
...
</Catalogo>

我已经为带有x数据的XML创建了以下代码,这段代码应该在一个类中,因为它将是一个dll:

 XmlWriter xmlWriter = XmlWriter.Create("periodo.xml");

 xmlWriter.WriteStartDocument();
 xmlWriter.WriteStartElement("Catalogo"); ///set once
 xmlWriter.WriteAttributeString("Version", "X");
 xmlWriter.WriteAttributeString("RFC", "X");
 xmlWriter.WriteAttributeString("TotalCtas", "X");
 xmlWriter.WriteAttributeString("Mes", "X");
 xmlWriter.WriteAttributeString("Ano", "X");


 xmlWriter.WriteStartElement("Ctas"); /// vary depending on the mounth.
 xmlWriter.WriteAttributeString("CodAgrup", "X");
 xmlWriter.WriteAttributeString("NumCta", "X");
 xmlWriter.WriteAttributeString("Desc", "X");
 xmlWriter.WriteAttributeString("Nivel", "X");
 xmlWriter.WriteAttributeString("Natur", "X");
 xmlWriter.WriteEndElement();

 xmlWriter.WriteEndDocument();
 xmlWriter.Close();

Catalogo元素只设置一次,但Ctas element可以根据当月的活动改变行数,因此我需要for循环才能插入行数可变?

这是否可以插入我从Dynamics获得的数据,还是需要2种方法?一个用于Catalogo元素,另一个用于ctas element?我怎么能这样做?

修改

我刚刚创建了一个从查询中获取字符串的方法:

public void Addcuentas(string[] addct)
            {
                int i;
                int j;
                int n = 4;// variable numer of rows 
                string[] addcta = new string[n * 5]; // there is always be 5 columns

                // save data
                for (i = 0; i < n; i++)
                {
                    for (j = 0; j < 5; j++)
                    {
                        addcta[i * j] = cata[j];
                    }

                }
            }

我尝试使用代码填充XML:

for (i = 0; i < n; i++)
                {
                    for (j = 0; j < 5; j++)
                    {
                        xmlWriter.WriteStartElement("Ctas");

                        xmlWriter.WriteAttributeString("CodAgrup", (addcta[i * j]));
                        xmlWriter.WriteAttributeString("NumCta", (addcta[i * (j + 1)]));
                        xmlWriter.WriteAttributeString("Desc", (addcta[i * (j + 2)]));
                        xmlWriter.WriteAttributeString("Nivel", (addcta[i * (j + 3)]));
                        xmlWriter.WriteAttributeString("Natur", (addcta[i * (j + 4)]));
                        xmlWriter.WriteEndElement();
                    }
                }

但是我真的不知道自己错误的是因为XML无法创建,不知道它的方法或方式我是否正在尝试填充XML,欢迎任何帮助和建议。

0 个答案:

没有答案