我要用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());
}
}
答案 0 :(得分:0)
您可以尝试此操作,而不是为datagridview中的列设置名称,而可以从查询中设置名称。
示例:
Select fname as 'Full Name', lname as 'Last name',dob as 'Date of Birth'
From employeeDetails
然后,datagridview的列名称将是您在查询中指定的名称。
答案 1 :(得分:0)
将DataGridView的数据源绑定到BindingSource
实例。将BindingSource的数据源绑定到List<SomeType>
。 SomeType
类应具有要显示的所有公共属性。如果您不想显示某些属性,则可以使用属性上的[Browsable(false)]
属性将它们从网格中删除。如果要将诸如fname
之类的字段重命名为Full Name
,请在属性上使用[DisplayName]
属性。
如果在初始化数据网格视图之后但在显示它之前执行此操作,它将首先显示列名而不显示行。