Мой DataTable
имеет три столбца, извлеченных из базы данных, в то время как мне нужно привязать только два его столбца к DataGridView
. Можете ли вы помочь мне с этим?
Как привязать определенные столбцы данных к DataGridView?
Ответ 1
Создайте столбцы для 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;
Ответ 2
Добавьте столбец, как указано выше, и не забудьте установить:
dataGridView1.AutoGenerateColumns = false;
Ответ 3
Это было задано некоторое время назад, поэтому вам, вероятно, не понадобится этот ответ... Надеемся, что другие посчитают это полезным.
Мне нужно было сделать что-то подобное, и я обнаружил, что самым простым решением было создать временную копию таблицы (в которой хранятся ваши данные), а затем просто удалить столбец, о котором идет речь. Например:
DataTable temp = YourDataTable;
temp.Columns.Remove(temp.Columns[2]) // Will remove the third column for example
YourDataTable.DataSource = temp;
YourDataTable.DataBind();
Я думаю, что это должно сделать трюк!
Ура!
Ответ 4
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];
}
Определенно это сработает.
Ответ 5
Мы можем создать новый DataTable с необходимыми столбцами и добавить к нему строки из набора данных. Затем мы можем инициализировать DataGrid с помощью недавно созданного DataTable.
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;
Ответ 6
Привязать DataTable к DataGridView, после чего скрыть нужный столбец.
dataGridView1.DataSource = datatable;
dataGridView1.Columns["ColumnName"].Visible = false;