• 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();
                }
            }
  • 相关阅读:
    求助:可以使用任何编程工具做成一个控件或组件,使得在VB中能调用并得到摄像头的参数及图片。
    作为软件工程师,你必须知道的20个常识
    继续C#开发or转做产品
    65行 JavaScript 代码实现 Flappy Bird 游戏
    自上而下的软件开发和自下而上的软件开发
    没有发布过产品的程序员不知道什么是真正的软件
    20个数据库设计的最佳实践
    59条搞笑但却真实无比的编程语录
    自己动手跟着Jwt标准实现Jwt
    Gitlab-Runner基础教程
  • 原文地址:https://www.cnblogs.com/liuqifeng/p/9149694.html
Copyright © 2020-2023  润新知