import sqlite3 db_path = r'd:\TestPlatform\TapProject\WPFProject\bin\x64\Debug\Config\Database\database.db' conn = sqlite3.connect(db_path) c = conn.cursor() # Check if ManualControl parent menu has a role_menu_rel entry print("=== ManualControl menu entry ===") c.execute("SELECT * FROM menu WHERE code='ManualControl'") for r in c.fetchall(): print(f" {r}") print("\n=== role_menu_rel for ManualControl ===") c.execute("SELECT * FROM role_menu_rel WHERE menuCode='ManualControl'") for r in c.fetchall(): print(f" {r}") # Check all parent menus and their role relations print("\n=== All parent menus (type='' or empty dllPath) ===") c.execute("SELECT m.code, m.name, m.type, m.parentCode, rrel.roleCode FROM menu m LEFT JOIN role_menu_rel rrel ON m.code = rrel.menuCode WHERE m.type = '' OR m.type IS NULL") for r in c.fetchall(): print(f" {r}") # Simulate the full login query for admin user print("\n=== Full menu tree for admin (all levels) ===") c.execute(""" SELECT DISTINCT m.code, m.name, m.type, m.parentCode, m.level, m.dllPath FROM menu AS m INNER JOIN role_menu_rel AS rrel ON m.code = rrel.menuCode INNER JOIN role AS r ON rrel.roleCode = r.code INNER JOIN user_role_rel AS urel ON r.code = urel.roleCode AND urel.username = 'admin' ORDER BY m.level, m.id """) for r in c.fetchall(): print(f" {r}") conn.close()