通过变量名称的C#访问对象

时间:2020-05-12 14:55:30

标签: c#

解释我的代码将变得更加容易,所以

    private void dtSelectorLoad_Click(object sender, RoutedEventArgs e)
    {
        MessageBox.Show(dtSelector.SelectedValue != null ? dtSelector.SelectedValue.ToString() : "I have 0 selected items!");
        var query =
        from obj in dataEntities.someTable
        select obj;
        primaryDataGrid.ItemsSource = query.ToList();

    }

基本上,基于dtSelector.SelectedValue.ToString();的值,我需要执行from obj in dataEntities.someTable,其中someTabledtSelector.SelectedValue.ToString();的值。

我该如何实现?我的头撞在这里的墙上。最终的结果是,当用户单击按钮时,它将使用listBox中当前选择的表中的数据填充dataGrid。

1 个答案:

答案 0 :(得分:2)

之所以似乎不可能(并非不可能)的原因是,您所做的与每个编程和数据库原则背道而驰。特别是,关系数据库是在现场条件下查询的,而不是在具有相同模式的多个表之间拆分,我对你说老实话,如果你为我工作了,那末你会被解雇的。天。

但是,如果您坚持这样做,则有两种选择:

  1. Reflection使您可以根据属性名称访问属性。恭喜,您将SQL注入总体上引入了WinForms。

  2. 关于所有可能值的简单switch语句,它将请求转发到正确的表。当然,这不能完全扩展到新值,因为您必须重新编译代码以添加新值,但是在这一点上,我们正在抛弃任何一种专业知识。

相关问题