Я получаю «Необработанное исключение типа« System.StackOverflowException », произошедшее в System.Data.dll, в моем свойстве datafilter DataView. Я не получаю трассировку стека для этого. Так может кто-нибудь помочь мне в этом. Ниже приведен код, где я получаю ошибку в filterView.Исключение stackoverflow в фильтрах строк DataView
DataSet metalAttributeDS = LoadItemData(); //loads the static dataset
DataTable metalDataTable = metalAttributeDS.Tables["FilterTable"];
DataView metalfilterView = new DataView(metalDataTable);
metalfilterView.ApplyDefaultSort = true;
metalfilterView.RowFilter = queryBuilder +
string.Format(
" And AttributeName='Metal' and AttributeValueID in ({0})",
string.Join(",", AttributeValueID.ToArray())); //forms query condition dynamically.
var res = from DataRowView rowView in metalfilterView select rowView["ItemID"].ToString();
int countParam = 0;
queryBuilder.AppendFormat(" and (");
foreach (string id in res)
{
countParam++;
queryBuilder.AppendFormat(" ItemID = '{0}'", id);
if (res.Count() > countParam)
{
queryBuilder.Append(" Or");
}
}
queryBuilder.Append(")");
}
DataSet dataSet = LoadItemData(); //loads the static dataset
DataTable dataTable = dataSet.Tables["FilterTable"];
DataView filterView = new DataView(dataTable);
filterView.ApplyDefaultSort = true;
LogHelper.LogInfo(GetType(), "filterView.RowFilter");
filterView.RowFilter = queryBuilder.ToString(); // throws error
Спасибо, Mehul Makwana.
Вот где проблема. Я думаю, фильтр пытается сравнить идентификатор строки с идентификатором Guid и получить ошибку. –
исключение переполнения стека не из-за этого. Я поменял свой код на то, что предложил аристос, чтобы я дал ошибку, что я не могу выполнить = операцию на System.Guid. – mehul9595