Я приношу данные во многих Table
, поэтому хочу, чтобы он преобразовал их в json при возврате. Итак, я попробовал, как показано ниже
public static string DataSetToJSON(DataSet dset)
{
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
List<Dictionary<string, object>> parentRow = new List<Dictionary<string, object>>();
Dictionary<string, object> childRow;
foreach (DataRow row in dset.Rows)
{
childRow = new Dictionary<string, object>();
foreach (DataColumn col in dset.Columns)
{
childRow.Add(col.ColumnName, row[col]);
}
parentRow.Add(childRow);
}
return jsSerializer.Serialize(parentRow);
}
Но я получаю сообщение об ошибке на dset.Rows
System.data.dataset не содержит определения для
Rows
....
2 ответа
После проверки и некоторых исследований, а также под руководством SLAKS
я, наконец, сделал это.
public static string DataSetToJSON(DataSet ds)
{
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
List<Dictionary<string, object>> parentRow = new List<Dictionary<string, object>>();
Dictionary<string, object> childRow;
foreach (DataTable table in ds.Tables)
{
foreach (DataRow dr in table.Rows)
{
childRow = new Dictionary<string, object>();
foreach (DataColumn col in table.Columns)
{
childRow.Add(col.ColumnName, dr[col]);
}
parentRow.Add(childRow);
}
}
return jsSerializer.Serialize(parentRow);
}
Спасибо, SLAKS
Набор данных - это набор таблиц данных. Строки будут существовать в таблице данных. Итак, вам нужно проверить данные в наборе данных, а затем перебрать существующие столбцы и строки.
Попробуйте получить первую дату:
DataTable firstTable = dset.Tables[0];
Если есть много таблиц данных, вам нужно зациклить таблицы данных как:
foreach(DataTable dt in dset.Tables)
{
//then you can get the rows and columns values for each table as above
foreach (DataRow row in dt.Rows)
{
childRow = new Dictionary<string, object>();
foreach (DataColumn col in dt.Columns)
{
childRow.Add(col.ColumnName, row[col]);
}
parentRow.Add(childRow);
}
}
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.