C# 绑定在C WPF和oracle中不起作用
我正在使用WPF中的DataGrid控件来显示Oracle数据库中的数据。我写了以下几行: XAML文件: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>
<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;
}