首页 > 解决方案 > 如何将特定数据表列中的值添加到 datagridview

问题描述

我有数据表,但是这个数据表从另一个数据表克隆值(从数据库查询)。

 public void showData()
 {
     string conStr = @"Data Source= ...";
     onnection = new SqlConnection(conStr);
     connection.Open();
     command = new SqlCommand();
     sql = "something"; 
     command = new SqlCommand(sql, connection);
     adapter = new SqlDataAdapter(command);
     dtt = new DataTable();
     adapter.Fill(dtt);
     //--Somthing Generate--//
     DataTable dt = new Datatable();
     dt = dtt.Clone();
     //--Somthing Generate--//
}

我尝试从 datatable(dt) 特定列添加 valec。

dt = dtt.Clone();
//--Somthing Generate--//
dataGridView3.DataSource = dt;
dataGridView3.Columns[0].DataPropertyName = "ID";
dataGridView3.Columns[1].DataPropertyName = "Name";

从我的代码,我不能。

标签: c#datagridviewdatatable

解决方案


  1. 使用 Copy() 方法而不是 Clone()。
dt = dtt.Copy();
  1. 将 gridview 的 AutoGenerateColumns 属性设置为 false。

当 AutoGenerateColumns 属性设置为 true 时,每列会自动将其 DataPropertyName 属性设置为 DataSource 属性指定的数据源中的属性或数据库列的名称。此绑定也可以手动执行,当您只想显示数据源中可用的属性或数据库列的子集时,这很有用。在这种情况下,请将 AutoGenerateColumns 属性设置为 false,然后手动添加每个 DataGridViewColumn,将每个 DataPropertyName 属性的值设置为要显示的数据源中的属性或数据库列。


推荐阅读