у меня есть проект по созданию XML-файла из SQL-запроса.
Может ли кто-нибудь помочь мне решить мою проблему
чтобы отличить и GroupBy от вложенного списка внутри XML-объекта вложенного списка
что я пробовал
сначала здесь мои данные SQL, изображение =
введите описание изображения
тогда моя модель списка классов XML =
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
namespace PajakXml.Model
{
[XmlRoot(ElementName = "TaxInvoiceBulk")]
public class TaxInvoiceBulk
{
[XmlElement(ElementName = "TIN")]
public string TIN { get; set; }
[XmlElement(ElementName = "ListOfTaxInvoice")]
public ListOfTaxInvoice ListOfTaxInvoice1 { get; set; }
public TaxInvoiceBulk()
{
ListOfTaxInvoice1 = new ListOfTaxInvoice();
}
}
[XmlRoot(ElementName = "ListOfTaxInvoice")]
public class ListOfTaxInvoice
{
[XmlElement(ElementName = "TaxInvoice")]
public List TaxInvoice1 { get; set; }
public ListOfTaxInvoice()
{
TaxInvoice1 = new List();
}
}
[XmlRoot(ElementName = "TaxInvoice")]
public class TaxInvoice
{
[XmlElement(ElementName = "DocEntryAR")]
public string DocEntryAR { get; set; }
[XmlElement(ElementName = "BuyerDocumentNumber")]
public string BuyerDocumentNumber { get; set; }
[XmlElement(ElementName = "BuyerName")]
public string BuyerName { get; set; }
[XmlElement(ElementName = "ListOfGoodService")]
public ListOfGoodService ListOfGoodService1 { get; set; }
public TaxInvoice()
{
ListOfGoodService1 = new ListOfGoodService();
}
}
[XmlRoot(ElementName = "ListOfGoodService")]
public class ListOfGoodService
{
[XmlElement(ElementName = "GoodService")]
public List GoodService1 { get; set; }
public ListOfGoodService()
{
GoodService1 = new List();
}
}
[XmlRoot(ElementName = "GoodService")]
public class GoodService
{
[XmlElement(ElementName = "Opt")]
public string Opt { get; set; }
[XmlElement(ElementName = "ItemCode")]
public string ItemCode { get; set; }
[XmlElement(ElementName = "Name")]
public string Name { get; set; }
}
}
затем мой код в WinForm
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using PajakXml.Model;
using System.Data.SqlClient;
using System.Linq;
using System.Xml.Serialization;
namespace PajakXml
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnXML_Click(object sender, EventArgs e)
{
isiXML1();
}
public void isiXML1()
{
SqlConnection myConnection = KonekSQL.create_concection();
SqlDataReader myReader = null;
SqlCommand myCommand = null;
string sql = $@"select * from TaxXMLdb";
myCommand = new SqlCommand(sql, myConnection);
myReader = myCommand.ExecuteReader();
var ModelTax1 = new TaxInvoiceBulk();
while (myReader.Read())
{
ModelTax1.TIN = myReader["TIN"].ToString();
ModelTax1.ListOfTaxInvoice1.TaxInvoice1.Add(new TaxInvoice
{
DocEntryAR = myReader["DocEntryAR"].ToString(),
BuyerDocumentNumber = myReader["BuyerDocumentNumber"].ToString(),
BuyerName = myReader["BuyerName"].ToString()
});
ModelTax1.ListOfTaxInvoice1.TaxInvoice1.First().ListOfGoodService1.GoodService1.Add(new GoodService
{
Opt = myReader["Opt"].ToString(),
ItemCode = myReader["ItemCode"].ToString(),
Name = myReader["Name"].ToString()
});
}
XmlSerializer serialXML = new XmlSerializer(typeof(TaxInvoiceBulk));
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "File XML|*.xml";
saveFileDialog1.Title = "Save XML File";
saveFileDialog1.FileName = "XML_TAX";
saveFileDialog1.ShowDialog();
if (saveFileDialog1.FileName != "")
{
System.IO.FileStream fileStream1 = (System.IO.FileStream)saveFileDialog1.OpenFile();
serialXML.Serialize(fileStream1, ModelTax1);
fileStream1.Close();
}
}
}
}
мой результат XML по-прежнему неверен
AAAAA
[*]
100100
5533
Anto
0
2001
Book
0
2002
Desk
0
2003
Keyboard
0
5001
Pencil
0
5002
Car
0
3001
Fan
100100
5533
Anto
100100
5533
Anto
200100
7722
Dani
200100
7722
Dani
300100
2211
Nina
что мне нужно сделать отдельным (DocEntryAR) в (Coding) и
GroupBy(ItemCode) для каждого (DocEntryAR).
- или XML списка моделей моего класса все еще неправильный?
- или дважды выполните запрос с использованием (выберите Distinct FROM TaxXMLdb) ?, я попробовал но все равно получаю неверный результат.
AAAAA
100100
5533
Anto
0
2001
Book
0
2002
Desk
0
2003
Keyboard
200100
7722
Dani
0
5001
Pencil
0
5002
Car
300100
2211
Nina
0
3001
Fan
Подробнее здесь: https://stackoverflow.com/questions/792 ... t-xml-obje