DataGridView修改數據並傳到數據庫


1、 兩個屬性設置: 
第一個:設置自動創建列,默認為True 
DataGridView1. AutoGenerateColumns = True; 
雖然默認為True,但寫下去總是好的!!! 
第二個:鼠標單擊編輯,默認雙擊 
DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;

2、 防止單元格被編輯: 
DataGridViewCell:限制單元格 
DataGridViewColumn:限制列 
DataGridViewRow:限制行 
DataGridViewReadOnly:限制整個DataGridView控件 
關鍵代碼如下:

    dataGridView1.ReadOnly = true;//整個表格只讀
                dataGridView1.Columns[1].ReadOnly = true;//列只讀
                dataGridView1.Rows[0].ReadOnly = true;//行只讀
                dataGridView1[3,3].ReadOnly = true;//單元格只讀

獲取數據

string strcolumn = dataGridView1.Columns[e.ColumnIndex].HeaderText;//獲取列標題
string strrow = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();//獲取焦點觸發行的第一個值
string value = dataGridView1.CurrentCell.Value.ToString();//獲取當前點擊的活動單元格的值

還有一種限制編輯的方式,EditMode枚舉下的EditProgrammatically的屬性:

dataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
//僅在調用 System.Windows.Forms.DataGridView.BeginEdit(System.Boolean) 方法時開始編輯

此屬性需要調用一個CellBeginEdit事件,編輯條件寫在方法中。

private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
        {
           // dataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
           //在點擊單元格時,觸發此事件,進行有條件的編輯
        }

3、可通過CellValueChanged事件來實現更新數據庫的數據數據鏈接

 private SqlConnection connection()
        {
            string strconn = "server = XQ-20160210KQLE\\SA;uid = sa;pwd = 123456;database = JYXinXi";
            SqlConnection conn = new SqlConnection(strconn);
            return conn;
        }

DataGridView顯示數據

private void GetDataGridView()
        {
            try
            {
                string strda = "select * from FilTer";
                SqlConnection conn = connection();
                conn.Open();
                DataSet ds = new DataSet();
                SqlDataAdapter da = new SqlDataAdapter(strda, conn);
                da.Fill(ds, "顯示數據");
                conn.Close();
                dataGridView1.AutoGenerateColumns = true;//自動創建列
                dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;//單擊單元格編輯
                dataGridView1.DataSource = ds.Tables[0];
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.Message.ToString());
            }
        }

更新數據庫

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            SqlConnection conn = connection();    
            try
            {
                string strcolumn = dataGridView1.Columns[e.ColumnIndex].HeaderText;//獲取列標題
                string strrow = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();//獲取焦點觸發行的第一個值
                string value = dataGridView1.CurrentCell.Value.ToString();//獲取當前點擊的活動單元格的值
                string strcomm = "update FilTer set " + strcolumn + "='" + value + "'where id = " + strrow;
                //update FilTer set 列名 = value where id = 3
                conn.Open();
                SqlCommand comm = new SqlCommand(strcomm, conn);
                comm.ExecuteNonQuery();
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.Message.ToString());
            }
            finally
            {
                conn.Close();
            }
        }

 


免責聲明!

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



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