Как привязать определенные столбцы данных к DataGridView? - PullRequest
11 голосов
/ 05 февраля 2011

Мой DataTable имеет три столбца, извлеченных из базы данных, в то время как мне нужно привязать только два его столбца к DataGridView. Не могли бы вы помочь мне с этим?

Ответы [ 6 ]

24 голосов
/ 05 февраля 2011

Создайте столбцы для 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;
18 голосов
/ 05 апреля 2013

Добавьте столбец, как указано выше, и не забудьте установить:

dataGridView1.AutoGenerateColumns=false;
1 голос
/ 19 марта 2014
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];
  }

Определенно это будет работать.

1 голос
/ 04 июня 2013

Это было задано некоторое время назад, поэтому вам, вероятно, не понадобится этот ответ ... Надеюсь, другие найдут его полезным.

Мне пришлось сделать нечто подобное, и я обнаружил, что самое простое решение - создать временную копию таблицы (в которой хранятся ваши данные), а затем просто удалить соответствующий столбец. Например:

DataTable temp = YourDataTable;
temp.Columns.Remove(temp.Columns[2]) // Will remove the third column for example
YourDataTable.DataSource = temp;
YourDataTable.DataBind();

Я думаю, что это должно сработать!

Ура!

0 голосов
/ 26 июля 2017

Привязать DataTable к DataGridView после этого скрыть ненужный столбец.

dataGridView1.DataSource = datatable;
dataGridView1.Columns["ColumnName"].Visible = false;
0 голосов
/ 23 февраля 2011

Мы можем создать новый 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...