C# 从数据库加载DataGrid时出现InvalidOperationException

C# 从数据库加载DataGrid时出现InvalidOperationException,c#,wpf,oracle,mvvm,C#,Wpf,Oracle,Mvvm,我的WPF/MVVM应用程序有问题。每当我想将datagrid与数据库连接时,总会出现Xaml解析异常 我有不同的选项卡,目前我希望在一个选项卡项(XAML中的UserControl)上显示我的datagrid My Model Properties: class ModelEmp : ViewModelBase { private string _EMPLOYEE_NAME; private string _LAST_NAME; priv

我的WPF/MVVM应用程序有问题。每当我想将datagrid与数据库连接时,总会出现Xaml解析异常

我有不同的选项卡,目前我希望在一个选项卡项(XAML中的UserControl)上显示我的datagrid

My Model Properties:
class ModelEmp : ViewModelBase
    {
        private string _EMPLOYEE_NAME;
        private string _LAST_NAME;
        private string _EMAIL;
        private string _Department_ID;
        private string _Location_ID;
        private string _Department_Name;
        private string _Manager_ID;


        public string EMPLOYEE_NAME     { get { return _EMPLOYEE_NAME; } set { _EMPLOYEE_NAME = value; OnPropertyChanged("EMPLOYEE_NAME"); } }
        public string LAST_NAME         { get { return _LAST_NAME; } set { _LAST_NAME = value; OnPropertyChanged("LAST_NAME"); } }
        public string EMAIL             { get { return _EMAIL; } set { _EMAIL = value; OnPropertyChanged("EMAIL"); } }
        public string Department_ID     { get { return _Department_ID; } set { _Department_ID = value; OnPropertyChanged("Department_ID"); } }
        public string Location_ID       { get { return _Location_ID; } set { _Location_ID = value; OnPropertyChanged("Location_ID"); } }
        public string Department_Name   { get { return _Department_Name; } set { _Department_Name = value; OnPropertyChanged("Department_Name"); } }
        public string Manager_ID        { get { return _Manager_ID; } set { _Manager_ID = value; OnPropertyChanged("Manager_ID"); } }

    }
下面是我的ViewModelDataGrid类及其方法:

private ObservableCollection<DataTable> _datagrid;

public ObservableCollection<DataTable> datagrid { get { return this._datagrid; } set { this._datagrid = value; OnPropertyChanged("datagrid"); } }

public DataGridViewModel()
{
    this._datagrid = new ObservableCollection<DataTable>();
    datagridmethod();
}

//I dont know if it is also ok...
public void datagridmethod()
{
     DB conlog = new DB(Global.tsname_p, Global.datenbank_p, Global.password_p); // Parameters for my database connection DB is an other class so i can connect with my db..., on my Class Global is the Name of the db etc.
     DataTable dd;
     OracleDataAdapter dp = new OracleDataAdapter();
     OracleCommand Comm = new OracleCommand();
     conlog.connect();
     dd = conlog.SelectQuery("SELECT DEPARTMENTS.DEPARTMENT_ID, DEPARTMENTS.LOCATION_ID, DEPARTMENTS.DEPARTMENT_NAME,
DEPARTMENTS.MANAGER_ID, EMPLOYEES.FIRST_NAME, EMPLOYEES.LAST_NAME,
EMPLOYEES.EMAIL  FROM DEPARTMENTS, EMPLOYEES  WHERE
DEPARTMENTS.DEPARTMENT_ID ='90'");
     dp.SelectCommand = Comm;

     // InvalidOperation exception occurs here. I dont know if this is the right way to do this but I cannot find an other solution, and ofc I dont want the code behind thing with the name of the datagrid.
      dp.Fill(dd); 
  }

发布更多关于XamlParseException(例如堆栈跟踪)的详细信息。这是什么
datagrid
中我更新了我的代码,底部有一个链接,错误来自VS2013link to error not working链接正在工作bro,我已经从另一个iconnection检查了它,您必须单击它。有人知道到底发生了什么我所做的是假的吗?
<DataGrid DataContext="{Binding datagrid}" RowBackground="LightYellow" AlternatingRowBackground="LightBlue"  AutoGenerateColumns="False" HorizontalAlignment="Center" ItemsSource="{Binding}"  >
    <DataGrid.Columns>
        <DataGridTextColumn Header="Department ID"           Binding="{Binding Path=Department_ID}"    />
        <DataGridTextColumn Header="Department Name"         Binding="{Binding Path=Department_Name}"  />
        <DataGridTextColumn Header="Manager ID"              Binding="{Binding Path=Manager_ID}"       />
        <DataGridTextColumn Header="Location ID"             Binding="{Binding Path=Location_ID}"      />
        <DataGridTextColumn Header="First Name"              Binding="{Binding Path=EMPLOYEE_NAME}"    />
        <DataGridTextColumn Header="Last Name"               Binding="{Binding Path=LAST_NAME}"        />
        <DataGridTextColumn Header="Email Adress"            Binding="{Binding Path=EMAIL}"             />
    </DataGrid.Columns>
</DataGrid>
public void comboconnectselectedfield()
        {
            string connstr = "******";
            OracleConnection conn = new OracleConnection(connstr);
            OracleCommand cmd = new OracleCommand();
            string sel = "SELECT DEPARTMENTS.DEPARTMENT_ID, DEPARTMENTS.LOCATION_ID, DEPARTMENTS.DEPARTMENT_NAME, DEPARTMENTS.MANAGER_ID, EMPLOYEES.FIRST_NAME, EMPLOYEES.LAST_NAME, EMPLOYEES.EMAIL  FROM DEPARTMENTS, EMPLOYEES  WHERE DEPARTMENTS.DEPARTMENT_ID ='90'";
            OracleDataAdapter empadap = new OracleDataAdapter();
            empadap.SelectCommand = new OracleCommand(sel,conn);
            DataTable dta = new DataTable();
            empadap.Fill(dta);
        }