C# gridview中的Oracle数据库表

C# gridview中的Oracle数据库表,c#,winforms,oracle,gridview,C#,Winforms,Oracle,Gridview,我想从oracle数据库中的查询中获取结果,并将其放入gridview中。现在我的问题是,我不知道如何在gridview中输出它。我正在使用工具箱中的gridview,我的oracle连接正在工作。我还有权选择查询,我可以将其输出到列表框中。我只是不知道如何在gridview中执行此操作。我寻找它,我发现了这个:虽然这对我没有帮助 如何在gridview中输出它,使其看起来与oracle数据库中的普通表完全相同 我应该使用什么以及如何使用 这是我的代码: public void read()

我想从oracle数据库中的查询中获取结果,并将其放入gridview中。现在我的问题是,我不知道如何在gridview中输出它。我正在使用工具箱中的gridview,我的oracle连接正在工作。我还有权选择查询,我可以将其输出到列表框中。我只是不知道如何在gridview中执行此操作。我寻找它,我发现了这个:虽然这对我没有帮助

如何在gridview中输出它,使其看起来与oracle数据库中的普通表完全相同

我应该使用什么以及如何使用

这是我的代码:

public void read()
        {
            try
            {
                var conn = new OracleConnection("")
                conn.Open();
                OracleCommand cmd = new OracleCommand("select * from t1", conn);
                OracleDataReader reader = cmd.ExecuteReader();
                DataTable dataTable = new DataTable();
            while (reader.Read())
            {
                var column1 = reader["vermogen"];
                column = (column1.ToString());
                listBox1.Items.Add(column);
            }
            conn.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

    }

要将
DataTable
绑定到
DataGridView
只需将代码更改为

    public void read()
    {
        try
        {
            using(OracleConnection conn = new OracleConnection("....."))
            using(OracleCommand cmd = new OracleCommand("select * from t1", conn))
            {
                conn.Open();
                using(OracleDataReader reader = cmd.ExecuteReader())
                {
                     DataTable dataTable = new DataTable();
                     dataTable.Load(reader);
                     dataGridView1.DataSource = dataTable;
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
 }

OracleDataReader可以传递给DataTable的Load方法,然后该表就可以绑定到DataGridView数据源属性了。我还添加了一些使用声明,以确保正确处置使用的一次性物品。(特别是OracleConnection在异常情况下不关闭非常昂贵)

您也可以使用
DataSet

   public void read()
   {
       try
       {
           OracleConnection conn = new OracleConnection("");
           OracleCommand cmd = new OracleCommand("select * from t1", conn);
           conn.Open();
           cmd.CommandType = CommandType.Text;
           DataSet ds = new DataSet();
           OracleDataAdapter da = new OracleDataAdapter();
           da.SelectCommand = cmd;
           da.Fill(ds);
           dataGridView1.DataSource = ds.Tables[0];

       }
       catch (Exception ex)
       {
           MessageBox.Show(ex.Message);
       }
   }
}

首先建立连接在这种情况下,您并没有使用连接字符串全局地建立连接。然后对要执行的oracle sql命令使用oleDbcommand。在我的例子中,是“select*fromtable_name”,它将显示从表到数据网格的所有数据。我在一个按钮中编写了这段代码,用于在数据网格上显示数据

{         
     OleDbConnection conn = new OleDbConnection("");
     OleDbCommand cmd = new OleDbCommand("select * from table_name", conn);

        {
            conn.Open();
            OleDbDataReader reader = cmd.ExecuteReader();
            {
                DataTable dataTable = new DataTable();
                dataTable.Load(reader);
                dataGridView1.DataSource = dataTable;
            }
            conn.Close();
        }
}

在哪一方面,相关问题没有起到作用?你说的是ASP.NET GridView还是WinForms DataGridView?@Steve WinForms。答案是使用mysql,没有任何解释。您只需初始化一个dataadapter并将结果加载到datatable中。然后将gridview的数据源设置为该DataTable。正如链接所指出的那样。它应该与任何数据库一起工作。请考虑解释如何以及为什么这是答案。单独的代码片段对操作没有帮助。