datagridview数据更新事件的编写

时间:2022-09-12 07:24:42
我已经快被datagridview数据更新问题折磨疯了。。
首先申明我不用数据绑定,没有数据源,我也不会用数据绑定,所以大侠们原谅我这么任性吧。。。
我用一个二维数组A[3.3]存储datagridview中单元格的数据。我做了个界面,在界面上可以单击datagridview的单元格进行修改,通过cellendedit事件,被修改的数据写入到A中,然后我有一个计算方法B,B通过一些参数和公式对A中的数据进行计算和修改,也就是说A的数据又一次发生了改变,现在我要把A的数据再重新导入到界面的datagridview中,难题来了我要求这些操作都是一瞬间完成的,即我对datagridview某个单元格的数据进行修改后,鼠标不点击任何按钮和单元格,datagridview自动进行更新,我现在的问题是修改某个单元格数据后必须点击下某个单元格整个datagridview的数据才会得到更新,这是问题1,问题2是我得更新数据函数是写在cellendedit事件中,有时我点击某一单元格,就是无意中点了一下,为嘛该单元格的数据自动变成0,这是为嘛啊!!!!
下面是我对于自己问题的图解,原谅我放荡不羁的画风,如果还是看不懂我的问题描述,这。。。我再想办法吧~~~
祈求大侠现身~~~ datagridview数据更新事件的编写

9 个解决方案

#1


木有人看懂么!!!!!大侠快粗线啊!!!!!!

#2


就冲着你的美工也得顶一发

#3


DataGridView我也研究了一段时间, 我觉得你的问题就是那个地方把数据给改了。
如果方便的话, 可以把你的代码贴出来。

#4


datagridview数据更新事件的编写

你可以在DataGridView的触发事件中看看这两个函数。cellvalidating  and cellvalidated

#5


DataGridView数据更新事件的编写示例
//更新数据事件
 public void Update(Instance it)
        {
            SqlConnection sc = GetConnection();//调用GetConnections()方法,得到连接对象
            try
            {
                sc.Open();//打开到数据库的连接
                SqlCommand cmd = new SqlCommand(//创建SqlCommand对象
                    "update tb_friend set phone=@phone where names=@names", sc);
                cmd.Parameters.Add("@names", SqlDbType.VarChar).Value = it.Name;//向SqlCommand对象添加参数
                cmd.Parameters.Add("phone", SqlDbType.VarChar).Value = it.phone;//向SqlCommand对象添加参数
                cmd.ExecuteNonQuery();//执行SqlCommand对象中的SQL命令
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                if (sc.State == ConnectionState.Open)//判断是否连接数据库
                {
                    sc.Close();//如果已经连接则关闭连接
                }
            }
        }//codego.net/tags/1/1/
//绑定dataGridView控件实现更新事件按钮
private void btn_update_Click(object sender, EventArgs e)
        {
            //调用datatier对象的Update()方法,更改数据库中的信息
            dt.Update(new Instance() { Name = txt_name_update.Text, phone = txt_phone_update.Text });
            dataGridView1.DataSource = dt.Select();//更新dataGridView1控件中的信息
            Clear();//清空TextBox控件中的文本
        }

#6


引用 4 楼 lzhuman2 的回复:
datagridview数据更新事件的编写

你可以在DataGridView的触发事件中看看这两个函数。cellvalidating  and cellvalidated


大侠我先去试试你推荐的这两个函数哈~~~~谢顶~~~ datagridview数据更新事件的编写

#7


引用 4 楼 lzhuman2 的回复:
datagridview数据更新事件的编写

你可以在DataGridView的触发事件中看看这两个函数。cellvalidating  and cellvalidated

大侠,我的代码如下:
 private void dataGridView_CurveDivide_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            int rowIndex = dataGridView_CurveDivide.CurrentCell.RowIndex;
            int columnIndex = dataGridView_CurveDivide.CurrentCell.ColumnIndex;
            change = Convert.ToDouble(dataGridView_CurveDivide.CurrentCell.Value);
            CalculateNewValue(change,rowindex,columnindex);//根据新输入的值重新计算数组中的值
            ImportDataToDatagridview();//把数组中的数据导入到datagridview中
 
        }
我把  ImportDataToDatagridview()写入到两个验证函数里没有用哎???

#8


有木有人帮忙解答啊!!!!!

#9


我也被搞疯了,没有结果, datagridview数据更新事件的编写

#1


木有人看懂么!!!!!大侠快粗线啊!!!!!!

#2


就冲着你的美工也得顶一发

#3


DataGridView我也研究了一段时间, 我觉得你的问题就是那个地方把数据给改了。
如果方便的话, 可以把你的代码贴出来。

#4


datagridview数据更新事件的编写

你可以在DataGridView的触发事件中看看这两个函数。cellvalidating  and cellvalidated

#5


DataGridView数据更新事件的编写示例
//更新数据事件
 public void Update(Instance it)
        {
            SqlConnection sc = GetConnection();//调用GetConnections()方法,得到连接对象
            try
            {
                sc.Open();//打开到数据库的连接
                SqlCommand cmd = new SqlCommand(//创建SqlCommand对象
                    "update tb_friend set phone=@phone where names=@names", sc);
                cmd.Parameters.Add("@names", SqlDbType.VarChar).Value = it.Name;//向SqlCommand对象添加参数
                cmd.Parameters.Add("phone", SqlDbType.VarChar).Value = it.phone;//向SqlCommand对象添加参数
                cmd.ExecuteNonQuery();//执行SqlCommand对象中的SQL命令
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                if (sc.State == ConnectionState.Open)//判断是否连接数据库
                {
                    sc.Close();//如果已经连接则关闭连接
                }
            }
        }//codego.net/tags/1/1/
//绑定dataGridView控件实现更新事件按钮
private void btn_update_Click(object sender, EventArgs e)
        {
            //调用datatier对象的Update()方法,更改数据库中的信息
            dt.Update(new Instance() { Name = txt_name_update.Text, phone = txt_phone_update.Text });
            dataGridView1.DataSource = dt.Select();//更新dataGridView1控件中的信息
            Clear();//清空TextBox控件中的文本
        }

#6


引用 4 楼 lzhuman2 的回复:
datagridview数据更新事件的编写

你可以在DataGridView的触发事件中看看这两个函数。cellvalidating  and cellvalidated


大侠我先去试试你推荐的这两个函数哈~~~~谢顶~~~ datagridview数据更新事件的编写

#7


引用 4 楼 lzhuman2 的回复:
datagridview数据更新事件的编写

你可以在DataGridView的触发事件中看看这两个函数。cellvalidating  and cellvalidated

大侠,我的代码如下:
 private void dataGridView_CurveDivide_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            int rowIndex = dataGridView_CurveDivide.CurrentCell.RowIndex;
            int columnIndex = dataGridView_CurveDivide.CurrentCell.ColumnIndex;
            change = Convert.ToDouble(dataGridView_CurveDivide.CurrentCell.Value);
            CalculateNewValue(change,rowindex,columnindex);//根据新输入的值重新计算数组中的值
            ImportDataToDatagridview();//把数组中的数据导入到datagridview中
 
        }
我把  ImportDataToDatagridview()写入到两个验证函数里没有用哎???

#8


有木有人帮忙解答啊!!!!!

#9


我也被搞疯了,没有结果, datagridview数据更新事件的编写