zoukankan      html  css  js  c++  java
  • 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();
                }
            }
  • 相关阅读:
    新的学期,新的学习
    织梦最新
    selectd选项跳转链接
    字体统一大小
    js点击后进入到另一个页面的TAB选项中
    织梦套后台
    js获取距离各边的距离
    将时间的秒数转化为分钟数
    jquery手写tab选项卡功能
    js中的定时器
  • 原文地址:https://www.cnblogs.com/liuqifeng/p/9149694.html
Copyright © 2011-2022 走看看