1. 程式人生 > >C# DataGridView使用SqlDataAdapter.Update刪除和修改資料庫

C# DataGridView使用SqlDataAdapter.Update刪除和修改資料庫

首先在DataGridView新增選擇框(型別為DataGridViewCheckBoxColumn)。確保資料表設定主鍵。

//資料庫操作變數
DataSet dstSql = new DataSet();
SqlDataAdapter dadstrSql= new SqlDataAdapter();
//資料庫載入函式
private void DisplayData ()
{
    string strSql = "select * from info order by time desc";
    dadstrSql= new SqlDataAdapter(strSql, conConnect);
    dstSql.Clear();
    dadstrSql.Fill(dstSql, "info ");
    Dgv.DataSource = dstSql.Tables["info "];
 }
//窗體載入
private void frmData_Load(object sender, EventArgs e)
{
DisplayData ();//資料庫載入
}

//刪除事件
        private void btnDelete_Click(object sender, EventArgs e)
        {
            int i = 0;
            foreach (DataGridViewRow row in Dgv.Rows)
            {
                if (row.Cells["選擇"].EditedFormattedValue.ToString() == "True")
                {
                    i++;
                }
            }
            if (i > 0)
            {
                if (MessageBox.Show("確定刪除嗎?", "刪除提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    List<DataGridViewRow> rows = new List<DataGridViewRow>();
                    foreach (DataGridViewRow row in Dgv.Rows)
                    {
                        if (row.Cells["選擇"].EditedFormattedValue.ToString() == "True")
                        {
                            rows.Add(row);
                        }

                    }
                    foreach (DataGridViewRow row in rows)
                    {
                        Dgv.Rows.Remove(row);
                        SqlCommandBuilder SCB = new SqlCommandBuilder(dadstrSql);
                        dadstrSql.Update(dstSql, "info ");

                    }
                    MessageBox.Show("刪除成功!" + "共刪除" + i + "行", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("請選中要刪除的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
//修改事件

        private void btnAlter_Click(object sender, EventArgs e)
        {
            int i = 0;
            foreach (DataGridViewRow row in Dgv.Rows)
            {
                if (row.Cells["選擇"].EditedFormattedValue.ToString() == "True")
                {
                    i++;
                }

            }
            if (i > 0)
            {
                if (MessageBox.Show("確定修改嗎?", "修改提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    List<DataGridViewRow> rows = new List<DataGridViewRow>();
                    foreach (DataGridViewRow row in Dgv.Rows)
                    {
                        if (row.Cells["選擇"].EditedFormattedValue.ToString() == "True")
                        {
                            rows.Add(row);
                        }

                    }
                    foreach (DataGridViewRow row in rows)
                    {
                        SqlCommandBuilder SCB = new SqlCommandBuilder(dadstrSql);
                        dadstrSql.Update(dstSql, "info ");
                       
                    }
                    MessageBox.Show("修改成功!" + "共修改" + i + "行", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    DisplayData ();//資料庫重新整理
                }
            }
            else
            {
                MessageBox.Show("請選中要修改的行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }