【问题标题】:Insert data from Oracle into a DataGridView with existing column names将 Oracle 中的数据插入具有现有列名的 DataGridView
【发布时间】:2018-10-22 17:00:19
【问题描述】:

我将使用 WinForm 编写一个应用程序,该应用程序从 Oracle 检索数据并将其插入 DataGridView。特别之处:DataGridView 已经有列名。单击按钮时,应将数据加载到相应的列中。我希望用户在加载包含列名的数据之前查看 DataGridView 中的列名。

我该如何做到这一点,或者换句话说,如何将 Oracle 中的列分配给 DataGridView 中的列。谢谢

private void button2_Click(object sender, EventArgs e)
    {
        try

        {

            string ConString = "Data Source= DWH;User Id=readonly;Password=*******;";

            using (OracleConnection con = new OracleConnection(ConString))
            {
                OracleCommand cmd = new OracleCommand("SELECT * FROM EMPLOYEES", con);
                OracleDataAdapter oda = new OracleDataAdapter(cmd);
                DataTable data = new DataTable();
                oda.Fill(data);
                dataGridView2.DataSource = data;
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }

    }

【问题讨论】:

    标签: c# oracle datagridview


    【解决方案1】:

    您可以试试这个,而不是在 datagridview 中为列设置名称,您可以从查询中设置名称。

    例子:

    Select fname as 'Full Name', lname as 'Last name',dob as 'Date of Birth'
    From employeeDetails
    

    那么 datagridview 的列名将是您在查询中指定的名称。

    【讨论】:

      【解决方案2】:

      将 DataGridView 的数据源绑定到 BindingSource 实例。将 BindingSource 的数据源绑定到 List<SomeType>SomeType 类应该具有您想要显示的所有公共属性。如果有您不想显示的属性,您可以使用属性上的[Browsable(false)] 属性将它们从网格中删除。如果您想将fname 之类的字段重命名为Full Name,请在属性上使用[DisplayName] 属性。

      如果您在初始化数据网格视图之后但在它显示之前执行此操作,它将最初显示为列名而不是行。

      【讨论】:

      • 感谢您的回答我将生成的选项自动列更改为false
      猜你喜欢
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 2014-07-09
      • 2015-05-06
      • 2015-09-10
      • 2012-05-20
      • 2010-12-26
      • 1970-01-01
      相关资源
      最近更新 更多