将 DataTable 行添加到实体框架发票表时出错

问题描述 投票:0回答:1

我正在尝试从使用 XML 文件中的值填充的 DataTable 填充实体框架表。但是,在尝试将这些行添加到我的实体框架模型时遇到错误。

这是我的代码的相关部分:

// Populating DataTable from XML
DataRow row = table.NewRow();
row["InvoiceNumber"] = xmlData.ChildNodes[2].ChildNodes[0].ChildNodes[2].ChildNodes[0].InnerText;
row["InvoiceIssueDate"] = Convert.ToDateTime(xmlData.ChildNodes[2].ChildNodes[0].ChildNodes[2].ChildNodes[1].InnerText);
row["InvoiceDeliveryDate"] = Convert.ToDateTime(xmlData.ChildNodes[2].ChildNodes[0].ChildNodes[2].ChildNodes[2].InnerText);

// Adding to Entity Framework table
Invoices invoices = new Invoices();
invoices.InvoiceNumber = table.Rows[0].ToString(); // This is likely incorrect
invoices.InvoiceIssueDate = table.Rows[1]; // This should be a DateTime
invoices.InvoiceDeliveryDate = table.Rows[2]; // This should be a DateTime

错误详细信息:

当我尝试运行此代码时,我收到以下错误消息:

Cannot convert System.Data.Datarow to System.DateTime

问题:

  • 我应该如何正确地将数据表中的值分配给 发票对象?
  • 将 DataRow 值转换为适当的值的正确方法是什么 发票属性的类型?

附加信息:

  • InvoiceNumber 是一个字符串。

  • InvoiceIssueDate 和 InvoiceDeliveryDate 是 DateTime 类型 发票实体。

c# xml entity-framework datatable data-conversion
1个回答
1
投票

试试这个。

invoices.InvoiceIssueDate = Convert.ToDateTime(table.Rows[1]);
invoices.InvoiceDeliveryDate = Convert.ToDateTime(table.Rows[2]);
© www.soinside.com 2019 - 2024. All rights reserved.