[C#] DataGridView 應用(一) – Column & DataRow

此系列文將介紹DataGridView的應用方法
不使用DataTable的BindingSource
而配合Entity Framework
彈性地實作資料的讀取、新增、修改、刪除等功能


首先是我們的目標資料表
和之前Entity Framework的介紹一樣
使用Northwind資料庫
資料表請參考如下圖

2016-5-9 下午 05-20-50


第一步很簡單
建立一個乾淨的DataGridView
2016-5-9 下午 06-01-41

然後我們手動新增以上資料表的欄位
當然,你也可以自行改寫出自動產生的方法

private void btnSetColumns_Click(object sender, EventArgs e)
{
    dataGridView1.Columns.Clear(); //清除所有Column
    AddColumn("CustomerID");
    AddColumn("CompanyName");
    AddColumn("ContactName");
    AddColumn("ContactTitle");
    AddColumn("Address");
    AddColumn("City");
    dataGridView1.AutoResizeColumns(); //調整寬度
}

public void AddColumn( string strHeader)
{
    DataGridViewColumn column = new DataGridViewTextBoxColumn();
    column.HeaderText = strHeader;
    dataGridView1.Columns.Add(column);
}

完成後如下圖
建立出我們需要的Columns
2016-5-9 下午 06-12-06
再來從資料庫讀取資料
並填入DataGridView中

private void btnGetData_Click(object sender, EventArgs e)
{
    dataGridView1.RowHeadersVisible = false; //隱藏RowHeader
    dataGridView1.Rows.Clear();
    List<Customers> lstCustomers = ef.Customers.ToList();
    foreach (Customers customer in lstCustomers)
    {
        List<object> lstObj = new List<object>();
        lstObj.Add(customer.CustomerID);
        lstObj.Add(customer.CompanyName);
        lstObj.Add(customer.ContactName);
        lstObj.Add(customer.ContactTitle);
        lstObj.Add(customer.Address);
        lstObj.Add(customer.City);

        dataGridView1.Rows.Add(lstObj.ToArray());//將Object Array填入DataRow
    }

    dataGridView1.AutoResizeColumns(); //自動調整寬度
}

完成結果如下圖
記得可以將DataGridView的Anchor設為Top, Bottom, Left, Right
旁邊按鈕則設定為Top, Right
控制項就能隨著視窗大小做縮放囉!
2016-5-9 下午 06-19-55.png

下一篇介紹右鍵選單及新增資料的方法
[C#] DATAGRIDVIEW 實作(二) – 右鍵選單、新增資料

 

廣告

3 thoughts on “[C#] DataGridView 應用(一) – Column & DataRow

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s