【发布时间】:2011-02-05 14:40:32
【问题描述】:
我的DataTable 从数据库中提取了三列,而我只需要将其中的两列绑定到DataGridView。你能帮我解决一下吗?
【问题讨论】:
-
asp.net winforms?请指定框架和/或语言
标签: datagridview datatable binding
我的DataTable 从数据库中提取了三列,而我只需要将其中的两列绑定到DataGridView。你能帮我解决一下吗?
【问题讨论】:
标签: datagridview datatable binding
自己为 DataGridView 创建列。试试这样的。
DataGridView dataGridView1 = new DataGridView();
BindingSource bindingSource1 = new BindingSource();
dataGridView1.ColumnCount = 2;
dataGridView1.Columns[0].Name = "Field1";
dataGridView1.Columns[0].DataPropertyName = "Field1";
dataGridView1.Columns[1].Name = "Field2";
dataGridView1.Columns[1].DataPropertyName = "Field2";
bindingSource1.DataSource = GetDataTable();
dataGridView1.DataSource = bindingSource1;
【讨论】:
添加上面回答的列,别忘了设置:
dataGridView1.AutoGenerateColumns = false;
【讨论】:
这是不久前提出的问题,因此您可能不需要此答案...希望其他人会发现它有用。
我不得不做类似的事情,我发现最简单的解决方案是创建表的临时副本(其中存储您的数据),然后简单地删除有问题的列。例如:
DataTable temp = YourDataTable;
temp.Columns.Remove(temp.Columns[2]) // Will remove the third column for example
YourDataTable.DataSource = temp;
YourDataTable.DataBind();
我认为这应该可以解决问题!
干杯!
【讨论】:
private void Form1_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("connection string");
SqlDataAdapter adp = new SqlDataAdapter("select Fieldname1,fieldname2 from Table Name", con);
DataSet ds = new DataSet();
ds.Clear();
adp.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
dataGridView1.DataSource = ds.Tables[0];
}
肯定会成功的。
【讨论】:
这可能有用
DataSet ds = new DataSet(); <-- Get data from Database here
DataTable dt = ds.Tables[0];
DataView view = new DataView(dt);
DataTable resultTable = view.ToTable(false, "Column1",
"Column2","Column3","Column4","Column5","Column6");
dataGridView.DataSource = resultTable ;
【讨论】:
我们可以创建一个包含所需列的新数据表,并从数据集中向其中添加行。然后我们可以用新创建的DataTable初始化DataGrid。
dt = new DataTable();
dt_Property.Columns.Add("Field1");
dt_Property.Columns.Add("Field2");
int i = 0;
DataRow row = null;
foreach (DataRow r in ds.Tables[0].Rows)
{
row = dt.NewRow();
row["Field1"] = ds.Tables[0].Rows[i][1];
row["Field2"] = ds.Tables[0].Rows[i][2];
dt_Property.Rows.Add(row);
i = i + 1;
}
dataGridView1.DataSource = dt;
【讨论】:
将 DataTable 绑定到 DataGridView 之后隐藏不需要的列。
dataGridView1.DataSource = datatable;
dataGridView1.Columns["ColumnName"].Visible = false;
【讨论】: