Последовательность не содержит элементов в system.linq.enumerable.single[tsource](ienumerable'1 source)
Я запускаю некоторый тест и с помощью OpenXML теперь хочу получить данные в массив и сохранить их в соответствующих элементах управления контентом. Я пробовал и получаю это execption
Sequence contains no Elements at System.Linq.Enumerable.Single[Tsource](IEnumerable'1 source)
У меня есть этот исходный код
using DocumentFormat.OpenXml; using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Wordprocessing; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace PopulateContentsOpenXml { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string myfile = @"C:\Users\Emeka.Iwuagwu\Desktop\DTestDoc.docx"; string[] writeDocData = new string[] {FirstName.Text,FileNumber.Text,IDNumber.Text,LastName.Text }; WriteDataToContentControl(myfile, writeDocData); } private void WriteDataToContentControl(string filename,string[]data) { try { using (WordprocessingDocument doc = WordprocessingDocument.Open(filename, true)) { MainDocumentPart mainPart = doc.MainDocumentPart; foreach (string text in data) { SdtElement text_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == text).Single(); Text to = text_block.Descendants<Text>().Single(); to.Text = text; mainPart.Document.Save(); MessageBox.Show("Ok i am fine now!"); } } } catch (Exception ex) { MessageBox.Show("Error: " + ex.ToString()); } } } }
Что мне кажется, я что - то упускаю?
Что я уже пробовал:
Я пробовал использовать
SdtElement text_block = mainPart.Document.Body.Descendants<SdtElement>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == text).Single();Но мне все еще кажется, что я что-то упускаю, что я, кажется, упускаю?