Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Enum Boleh Dijana Secara Dinamik daripada Jadual Carian Pangkalan Data?
Jana pengiraan secara dinamik daripada jadual carian pangkalan data
Bagaimana untuk menjana penghitungan secara automatik berdasarkan nilai yang disimpan dalam jadual carian pangkalan data dan memastikan penghitungan disegerakkan dengan pangkalan data tanpa mengubah suai kod secara manual? Ini soalan biasa.
Penyelesaian penjanaan kod
Walaupun ia tidak boleh diautomatikkan sepenuhnya, penjanaan kod boleh memberikan penyelesaian. Penjanaan pengiraan automatik boleh dicapai dengan mencipta projek berasingan yang dipanggil "EnumeratedTypes" dalam penyelesaian. Projek ini bertindak sebagai aplikasi konsol, mendapatkan semula nilai daripada pangkalan data, membina penghitungan daripada nilai tersebut, dan menyimpannya ke dalam perhimpunan berasingan.
Dalam projek penjanaan kod ini, gunakan kod berikut untuk mentakrif dan mengisi penghitungan dinamik:
<code class="language-csharp">// 创建动态程序集 AssemblyName name = new AssemblyName("MyEnums"); AssemblyBuilder assemblyBuilder = currentDomain.DefineDynamicAssembly(name, AssemblyBuilderAccess.RunAndSave); // 定义动态模块 ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule(name.Name, name.Name + ".dll"); // 定义公共枚举 EnumBuilder myEnum = moduleBuilder.DefineEnum("EnumeratedTypes.MyEnum", TypeAttributes.Public, typeof(int)); // 从数据库检索数据 MyDataAdapter someAdapter = new MyDataAdapter(); MyDataSet.MyDataTable myData = myDataAdapter.GetMyData(); // 定义枚举文字 foreach (MyDataSet.MyDataRow row in myData.Rows) { myEnum.DefineLiteral(row.Name, row.Key); } // 创建枚举并保存程序集 myEnum.CreateType(); assemblyBuilder.Save(name.Name + ".dll");</code>
Projek lain dalam penyelesaian boleh merujuk pemasangan yang dijana ini, dengan itu mengakses penghitungan dinamik dan menyediakan sokongan IntelliSense.
Automasi acara selepas binaan
Untuk memastikan penjanaan pengiraan automatik, projek "EnumeratedTypes" boleh menambah acara pasca binaan. Acara ini akan dijalankan semasa proses binaan dan menjana fail "MyEnums.dll".
Nota lain
Atas ialah kandungan terperinci Bagaimanakah Enum Boleh Dijana Secara Dinamik daripada Jadual Carian Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!