private String getTableCreateString() { StringBuilder str = new StringBuilder(); str.Append(@"CREATE TABLE IF NOT EXISTS `{0}` ("); var structure = new SpellEditor.Sources.DBC.Spell_DBC_Record(); var fields = structure.GetType().GetFields(); foreach (var f in fields) { switch (Type.GetTypeCode(f.FieldType)) { case TypeCode.UInt32: { str.Append(String.Format(@"`{0}` int(10) unsigned NOT NULL DEFAULT '0', ", f.Name)); break; } case TypeCode.Int32: str.Append(String.Format(@"`{0}` int(11) NOT NULL DEFAULT '0', ", f.Name)); break; case TypeCode.Single: str.Append(String.Format(@"`{0}` FLOAT(25, 20) NOT NULL DEFAULT '0', ", f.Name)); break; case TypeCode.Object: { var attr = f.GetCustomAttribute<SpellEditor.Sources.DBC.HandleField>(); if (attr != null) { if (attr.Method == 1) { for (int i = 0; i < attr.Count; ++i) str.Append(String.Format(@"`{0}{1}` TEXT NOT NULL, ", f.Name, i)); break; } else if (attr.Method == 2) { for (int i = 0; i < attr.Count; ++i) str.Append(String.Format(@"`{0}{1}` int(10) unsigned NOT NULL DEFAULT '0', ", f.Name, i)); break; } } goto default; } default: throw new Exception("ERROR: Unhandled type: " + f.FieldType + " on field: " + f.Name); } } str.Append(@"PRIMARY KEY (`ID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;"); return str.ToString(); }
public string getTableCreateString() { StringBuilder str = new StringBuilder(); str.Append(@"CREATE TABLE IF NOT EXISTS `{0}` ("); var structure = new SpellEditor.Sources.DBC.Spell_DBC_Record(); var fields = structure.GetType().GetFields(); foreach (var f in fields) { switch (Type.GetTypeCode(f.FieldType)) { case TypeCode.UInt32: { str.Append(string.Format(@"`{0}` INTEGER(10) NOT NULL DEFAULT '0', ", f.Name)); break; } case TypeCode.Int32: str.Append(string.Format(@"`{0}` INTEGER(11) NOT NULL DEFAULT '0', ", f.Name)); break; case TypeCode.Single: str.Append(string.Format(@"`{0}` REAL NOT NULL DEFAULT '0', ", f.Name)); break; case TypeCode.Object: { var attr = f.GetCustomAttribute <SpellEditor.Sources.DBC.HandleField>(); if (attr != null) { if (attr.Method == 1) { for (int i = 0; i < attr.Count; ++i) { str.Append(string.Format(@"`{0}{1}` TEXT, ", f.Name, i)); } break; } else if (attr.Method == 2) { for (int i = 0; i < attr.Count; ++i) { str.Append(string.Format(@"`{0}{1}` INTEGER(10) NOT NULL DEFAULT '0', ", f.Name, i)); } break; } } goto default; } default: throw new Exception("ERROR: Unhandled type: " + f.FieldType + " on field: " + f.Name); } } str.Append(@"PRIMARY KEY (`ID`));"); return(str.ToString()); }