РЕДАКТИРОВАТЬ : после отладки строка, в которой обнаружен код ошибки, выглядит следующим образом:
dv.Sort = "Header1Title, Header2Title, Header3Title";
Во время второго цикла значение, указанное ниже, является пустым, что приводит к ошибке сортировки.
SPListItemCollection filePlanListing = recordDocument.GetItems(query);
Вопрос: Я столкнулся с этой ошибкой, если повторил следующий метод более одного раза.
System.Data.DataException: DataTable должен быть установлен до использования DataView.
foreach (var header1ref in header1Ref)
{
try
{
SPQuery query = new SPQuery(view)
{
RowLimit = 0,
Query = "<Where><And><Eq><FieldRef Name =\"Header1Ref\"/><Value Type=\"Text\">{0}</Value></Eq>{1}</And></Where>".FormatWith(header1ref, subQuery),
ViewAttributes = "Scope=\"RecursiveAll\"",
ViewFields = @"
<FieldRef Name='Header1Title'/>",
};
SPListItemCollection filePlanListing = recordDocument.GetItems(query);
DataView dv = new DataView(filePlanListing.GetDataTable());
dv.Sort = "Header1Title, Header2Title, Header3Title";
dtAll.Merge(dv.ToTable());
}
catch (Exception ex)
{
Log(ex.ToString());
}
}
Если вышеуказанное выполняется только один раз, ошибок нет.
Могу ли я узнать, как правильно управлять datatable
, чтобы он мог повторяться несколько раз?
Спасибо.