public static JArray ToJson(this IDataReader dataReader) { JArray jArray = new JArray(); try { while (dataReader.Read()) { JObject jObject = new JObject(); for (int i = 0; i < dataReader.FieldCount; i++) { try { string strKey = dataReader.GetName(i); if (dataReader[i] != DBNull.Value) { object obj = Convert.ChangeType(dataReader[i], dataReader.GetFieldType(i)); jObject.Add(strKey, JToken.FromObject(obj)); } } catch (Exception) { } } jArray.Add(jObject); } } catch (Exception ex) { TaosException.ThrowExceptionForRC(-10001, "ToJson Error", ex); } return(jArray); }
public static List <T> ToObject <T>(this IDataReader dataReader) { List <T> jArray = new List <T>(); try { var t = typeof(T); var pots = t.GetProperties(); while (dataReader.Read()) { T jObject = Activator.CreateInstance <T>(); for (int i = 0; i < dataReader.FieldCount; i++) { try { string strKey = dataReader.GetName(i); if (dataReader[i] != DBNull.Value) { var pr = from p in pots where p.Name == strKey && p.CanWrite select p; if (pr.Any()) { var pi = pr.FirstOrDefault(); pi.SetValue(jObject, Convert.ChangeType(dataReader[i], pi.PropertyType)); } } } catch (Exception) { } } jArray.Add(jObject); } } catch (Exception ex) { TaosException.ThrowExceptionForRC(-10002, $"ToObject<{nameof(T)}> Error", ex); } return(jArray); }