public class GenerateSQL { /// /// Generates the specified object. /// /// The object. /// public static string Generate(object Object) { StringBuilder objBuilder = new StringBuilder(); StringBuilder objBuilder2 = new StringBuilder(); Type type = Object.GetType();// Get object type object[] obj = type.GetCustomAttributes(true); for (int i = 0; i < obj.Length; i++) { if (obj[i] is Attributes.Table) { objBuilder.Append("CREATE TABLE " + ((Technique.Framework.Sql.Attributes.Table)(obj[i])).Name + " ( "); } } Type type2 = Object.GetType(); PropertyInfo[] objPropertyInfo = type2.GetProperties(); for (int iCount = 0; iCount < objPropertyInfo.Length; iCount++) { object[] obj2 = objPropertyInfo[iCount].GetCustomAttributes(true); for (int ii = 0; ii < obj2.Length; ii++) { if (obj2[ii] is Attributes.Identity) { objBuilder.Append(((Technique.Framework.Sql.Attributes.Identity)(obj2[ii])).Column + " int identity,"); objBuilder2.Append("Primary Key" + " (" + ((Technique.Framework.Sql.Attributes.Identity)(obj2[ii])).Column + ")"); } if (obj2[ii] is Attributes.Field) { if (((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType == System.Data.SqlDbType.Bit) { objBuilder.Append(((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Column + " " + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType + ","); } else if (((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType == System.Data.SqlDbType.DateTime) { objBuilder.Append(((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Column + " " + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType + ","); } else if (((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Unique == false && ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).AllowNull == false) { objBuilder.Append(((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Column + " " + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType + "(" + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Lenght + ") NOT NULL,"); } else if (((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Unique == true && ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).AllowNull == false) { objBuilder.Append(((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Column + " " + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType + "(" + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Lenght + ")Unique NOT NULL,"); } else if (((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Unique == true && ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).AllowNull == true) { objBuilder.Append(((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Column + " " + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType + "(" + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Lenght + ")Unique,"); } else { objBuilder.Append(((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Column + " " + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType + "(" + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Lenght + "),"); } } } } objBuilder2.Append(")"); string strSql = objBuilder.ToString() + objBuilder2.ToString(); return strSql; } }