WinForm控件之DataGridView控件使用


一、使用DataGridView展示從數據庫一張表中查詢到的數據

數據庫中student表結構如下

 

數據

 

1.在窗體上添加DataGridView控件,命名dgvData,並且添加與student表字段名相同名稱的5列,其中性別列的類型為下拉控件,在ColumnType屬性下設置類型

2.查詢

在查詢數據之前,先要初始化性別下拉控件,不然展示數據時會報錯。DataGridViewComboBoxColumn 的用法和ComboBox差不多

初始化代碼如下:

private void FrmDataGridView_Load(object sender, EventArgs e)
        {
            //初始化性別下拉控件
            DataTable dt = new DataTable();
            dt.Columns.AddRange(new DataColumn[] { new DataColumn("Value"), new DataColumn("Text") });
            DataRow dr = dt.NewRow();
            dr["Value"] = 0;
            dr["Text"] = "";
            dt.Rows.Add(dr);

            DataRow dr1 = dt.NewRow();
            dr1["Value"] = 1;
            dr1["Text"] = "";
            dt.Rows.Add(dr1);

            DataGridViewComboBoxColumn cbo = dgvData.Columns["SEX"] as DataGridViewComboBoxColumn;
            cbo.DisplayMember = "Text";
            cbo.ValueMember = "Value";
            cbo.DataSource = dt;
        }

查詢student表並展示數據代碼如下:

private void btnSearch_Click(object sender, EventArgs e)
        {
            string sql = "select * from student";
            DataTable dt = DBHelper.GetDataTable(sql);
            dgvData.DataSource = dt;
        }

界面效果:

 

二、使用DataGridView控件在界面修改數據並提交更新到數據庫

在數據中查詢單表進行展示是,可以將界面修改的數據批量更新到數據庫

使用到SqlDataAdapter和SqlCommandBuilder兩個對象

先執行查詢,得到SqlDataAdapter,將數據填充到臨時表

查詢代碼如下:

SqlDataAdapter adapter = null;
        private void btnSearch_Click(object sender, EventArgs e)
        {
            string sql = "select * from student";
            adapter = DBHelper.GetDataAdapter(sql);
            DataTable dt = new DataTable();
            adapter.Fill(dt);
            dgvData.DataSource = dt;
        }

數據展示到DataGridView界面后,可以在界面修改數據,執行更新,數據庫中的數據會同步更新,更新代碼如下:

private void btnUpdate_Click(object sender, EventArgs e)
        {
            //SqlCommandBuilder用來 關聯SqlServer和Dataset的 
            DataTable dt = dgvData.DataSource as DataTable;
            SqlCommandBuilder sqlCommandBuilder = new SqlCommandBuilder(adapter);
            adapter.Update(dt);//支持動態sql單表更新

            btnSearch_Click(null, null);
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM