private string GetDataValues(IBaseData data_) { PropertyInfo[] propertyInfos = data_.GetType().GetProperties(); string type; PropertyInfo propertyInfo; object fieldValue; string valueString = string.Empty; StringBuilder sb = new StringBuilder(); for (int i = 0; i < propertyInfos.Length; i++) { propertyInfo = propertyInfos[i]; if (propertyInfo.GetSetMethod(true) == null) { continue; } fieldValue = propertyInfo.GetValue(data_, null); type = SqLiteHelper.GetColumnType(propertyInfo.PropertyType.Name); valueString = type == SqLiteHelper.TEXT ? string.Format("{0}{1}{2}", "'", fieldValue.ToString(), "'") : fieldValue.ToString(); if (i == 0) { sb.Append(valueString); } else { sb.Append(string.Format(",{0}", valueString)); } } return(sb.ToString()); }
private string CreateTableColumnsString <TBaseData>() where TBaseData : IBaseData { List <PropertyInfo> propertyInfos = new List <PropertyInfo>( typeof(TBaseData).GetProperties().Where(prop_ => Attribute.IsDefined(prop_, typeof(DbFieldAttribute))) ); StringBuilder sb = new StringBuilder(); string fieldType = string.Empty; for (int i = 0; i < propertyInfos.Count; i++) { fieldType = SqLiteHelper.GetColumnType(propertyInfos[i].PropertyType.Name); if (i == 0) { sb.AppendFormat("{0} {1}", propertyInfos[i].Name, fieldType); } else { sb.AppendFormat(", {0} {1}", propertyInfos[i].Name, fieldType); } } sb.Append(", Timestamp DATETIME DEFAULT CURRENT_TIMESTAMP"); return(sb.ToString()); }