diplom
.User Id
и Password
на Integrated Security=SSPI;
DeclaringType
у Member
.Console.WriteLine(NameOf(( ) => SomeStatic.Value ));
static string NameOf<T>(Expression<Func<T>> path)
{
var members = new Queue<string>();
Expression? exp = path.Body;
while (exp is not null)
{
if (exp is MemberExpression memberExpression)
{
var prevName = memberExpression.Member.DeclaringType?.Name;
if (prevName is not null)
{
if (members.TryPeek(out var last) || last != prevName)
{
members.Enqueue(prevName);
}
}
members.Enqueue(memberExpression.Member.Name);
exp = memberExpression.Expression;
}
else
{
break;
}
}
return string.Join('.', members);
}
class SomeStatic
{
public static int Value { get; set; }
}
self.filters = { # тут у тебя человекочитаемые заголовки
"ID": tk.StringVar(),
"Город": tk.StringVar(),
"Температура": tk.StringVar(),
"Погода": tk.StringVar(),
"Скорость ветра": tk.StringVar(),
}
# тут ты переносишь пару заголовок-значение в словарь строка:строка
filter_values = {criteria: var.get() for criteria, var in self.filters.items()}
...
for criteria, value in filter_values.items():
if value: # а тут ты внезапно решаешь что у тебя ключ - имя поля, а не заголовок
conditions.append(f"{criteria} LIKE ?")