【问题标题】:DataGridView fixed columnsDataGridView 固定列
【发布时间】:2012-09-01 08:20:30
【问题描述】:

我有一个 DataGridView,用于从 access 数据库中放入数据。我现在在主表单上,当表单打开时,网格只是灰色的。

当单击按钮时,信息会与列一起显示。我希望在单击按钮之前列存在,因此当打开表单时,您可以看到列减去数据的内容。

我尝试在设计模式下添加列,但是当单击按钮时,其他列只会被添加。

我当前的代码如下。

string sConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=Sailing.accdb";
OleDbConnection conSailing = new OleDbConnection(sConnection);
conSailing.Open();

string sQueryShipsPort = "Select ShipName, Weight FROM Ships WHERE Inport = True ;";
OleDbDataAdapter dataadapter = new OleDbDataAdapter(sQueryShipsPort, conSailing);
DataSet ds = new DataSet();

dataadapter.Fill(ds, "Ships Table");
conSailing.Close();
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Ships Table";

【问题讨论】:

    标签: datagridview fixed appearance


    【解决方案1】:

    您需要做两件事来解决此问题 - 首先,您需要告诉您创建的列与您的数据表的关系。其次,您需要告诉数据网格不要为您生成列。

    将 DataGridView 列数据绑定到数据源

    当您使用设计器将列添加到网格时,您将看到编辑此列的选项。选择此项,您将看到 DataGridViewColumn 的属性列表。

    您感兴趣的属性是DataPropertyName - 这告诉列要绑定到数据源中的哪个属性。

    因此,例如,如果在您的数据表中有一个“名字”列,则需要将 DataPropertyName 设置为您添加为“名字”的网格名字列。

    阻止网格自动生成列

    您在添加数据源时看到更多列的原因是DataGridView 在您添加数据源时会自动为您生成列。

    要关闭此功能,您只需将 DataGridView 属性 AutoGenerateColumns 设置为 false。这可以通过设计器或代码来完成。

    (有时您不需要这样做 - 我发现只设置 DataPropertyName 会经常这样做,但在您不希望时将 AutoGenerateColumns 设置为 false 通常是一个好习惯)

    【讨论】:

      猜你喜欢
      • 2017-05-07
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      相关资源
      最近更新 更多