Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Oracle连接后在DataGrid中没有结果_C#_Wpf_Oracle11g - Fatal编程技术网

C# Oracle连接后在DataGrid中没有结果

C# Oracle连接后在DataGrid中没有结果,c#,wpf,oracle11g,C#,Wpf,Oracle11g,我试图将Oracle与C#联系起来,但不幸的是没有成功。我是C#和WPF的新手。谢谢你的帮助 private void Window_Loaded(object sender, RoutedEventArgs e) { try { String connectionString = "Data Source=DWH; User Id=readonly; Password=********;"; Oracle

我试图将Oracle与C#联系起来,但不幸的是没有成功。我是C#和WPF的新手。谢谢你的帮助

private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        try
        {

            String connectionString = "Data Source=DWH; User Id=readonly; Password=********;";
            OracleConnection con = new OracleConnection();
            con.ConnectionString = connectionString;
            con.Open();
            OracleCommand cmd = new OracleCommand();
            cmd.CommandText = "SELECT * FROM SALARIES";
            cmd.Connection = con;
            OracleDataReader dr = cmd.ExecuteReader();
            DataGrid dg = new DataGrid();
            dr.Read();
        }
        catch (Exception exp) { }
    }
试试这个: 编辑我的代码

private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        try
        {

            String connectionString = "Data Source=DWH; User Id=readonly; Password=********;";
            OracleConnection con = new OracleConnection();
            con.ConnectionString = connectionString;
            con.Open();
            OracleCommand cmd = new OracleCommand();
            cmd.CommandText = "SELECT * FROM SALARIES";
            cmd.Connection = con;
            OracleDataReader dr = cmd.ExecuteReader();
            DataGrid dg = new DataGrid();
            if (dr.HasRows)
                {
                    DataTable dt = new DataTable();
                    dt.Load(dr);
                    dg.ItemsSource= dt.DefaultView;
                }
           con.Close();
        }
        catch (Exception exp) { }
    }   

谢谢大家,这是我的解决方案

private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        try
        {

            String connectionString = "Data Source=DWH; User Id=readonly; Password=*******;";

            OracleConnection con = new OracleConnection();
            con.ConnectionString = connectionString;
            con.Open();
            OracleCommand cmd = con.CreateCommand();
            cmd.CommandText = "SELECT * FROM SALARIES";
            cmd.CommandType = CommandType.Text;
            OracleDataReader dr = cmd.ExecuteReader();
            DataTable dt = new DataTable();
            dt.Load(dr);
            DataGrid1.ItemsSource = dt.DefaultView;
            con.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

至少您必须1)将数据读取器中的项目读取到某些集合,如
列表
可观察集合
,等等;2) 通过
ItemsSource
和数据绑定,或直接通过
items
将项目添加到网格中(不推荐)。您当前的代码既不读取数据,也不使用数据填充网格。您没有对DataGrid执行任何操作,甚至没有将其添加到UI,因此您的期望是什么?@Yves:您是否在XAML中定义了任何DataGrid元素?
DataTable
s?你是认真的吗?嘿,乌巴尔迪斯尼,非常感谢你的回复。我试过了,但没用。