C# 绑定在C WPF和oracle中不起作用

C# 绑定在C WPF和oracle中不起作用,c#,wpf,oracle,xaml,datagrid,C#,Wpf,Oracle,Xaml,Datagrid,我正在使用WPF中的DataGrid控件来显示Oracle数据库中的数据。我写了以下几行: XAML文件: <DataGrid AutoGenerateColumns="True" Height="446" HorizontalAlignment="Left" Margin="16,63,0,0" Name="systemDataGrid" VerticalAlignment="Top" Width="636"> <DataGrid.Columns>

我正在使用WPF中的DataGrid控件来显示Oracle数据库中的数据。我写了以下几行:

XAML文件:

<DataGrid AutoGenerateColumns="True" 
      Height="446" HorizontalAlignment="Left" Margin="16,63,0,0" Name="systemDataGrid" VerticalAlignment="Top" Width="636">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding  ID}" Header="ID" MaxWidth="50" />
        <DataGridTextColumn Binding="{Binding SYSTEM_NAME}" Header="Name" />
        <DataGridTextColumn Binding="{Binding SYSTEM_DESC}" Header="Description"  />
        <DataGridTextColumn Binding="{Binding SYSTEM_CREATED}" Header="Created" />
    </DataGrid.Columns>
</DataGrid>
但数据库中的数据除了ID之外不能直接显示,而且只有关闭AutoGenerateColumns时才会显示ID

很抱歉,我不能发布图像。请浏览

Oracle中的字段名类似于SYSTEM_NAME、SYSTEM_DESC等。我尝试过{Binding SYSTEMNAME}{Binding SYSTEM_NAME}{Binding Path=SYSTEM_NAME}等,但没有人能工作

我的代码是否有问题,或者是字段名中的下划线

更新: 如果使用select ID、System_Name systemname、System_Desc systemdesc、System_Created systemcreated from System;,{Binding SYSTEMNAME}工作正常,因此肯定存在 下划线有点问题,但如何处理

谢谢你提供的任何信息

更新: 事实证明,我在SQL中使用了{Binding System_Name}作为字段名,但什么都没有得到,如果使用{Binding System_Name}就可以了。谢谢你们,为我的错误道歉


你必须使用所有大写字母。我不知道这项技术,但是你缺少下划线,而且大小写也可能是一个大写字母issue@thumbmunkeys我用下划线试过所有这些,每一个例子。我个人认为下划线是更改之类的,因为自动生成的列的标题没有下划线。AutoGenerateColumns=true会显示什么?这可能会提示您使用正确的绑定names@user3455395由url链接的图片显示了自动生成的列,标题中有一个带下划线的字母,而不是下划线。如果暂停并调试:systemDataGrid.ItemsSource绑定到什么?对于您试图访问的信息,命名约定可能不同。
string sqlStr = "select ID, System_Name, System_Desc, System_Created from system";
OracleDataAdapter dataAdapter = new OracleDataAdapter(sqlStr, db.Connection);
DataSet systemDataSet = new DataSet();
dataAdapter.Fill(systemDataSet);
if(systemDataSet.Tables[0].Rows.Count > 0)
{
    systemDataGrid.ItemsSource = systemDataSet.Tables[0].DefaultView;
}