开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 2904|回复: 3

gridview修改好后保存用什么代码?

[复制链接]

0

精华

61

贡献

25

赞扬

帖子
77
软币
1852
在线时间
105 小时
注册时间
2013-6-8
发表于 2014-8-26 17:32:36 | 显示全部楼层 |阅读模式
以下代码不灵,保存不了!高手指点一下!谢谢!
1)Dev控件GridControl 的使用
1、确认当前正在编辑的单元格的输入
this.gridview1.CloseEditor();
2、保存当前行的值到数据源
this.gridview1.UpdateCurrentRow();
3、通过数据适配器把修改更新到数据库
sqlDataAdapter1.Update(myDataSet, "MyTable")
//此时直接通过DataAdapter执行Update就可以
按照1,2,3的步骤执行;也可以通过1,2步骤然后通过Sql实现

回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
31
软币
151
在线时间
7 小时
注册时间
2014-8-27
发表于 2014-8-27 09:23:24 | 显示全部楼层
我是这样做的:
        private void gridViewProject_RowUpdated(object sender, DevExpress.XtraGrid.Views.Base.RowObjectEventArgs e)
        {
            //gridViewProject.UpdateCurrentRow();
            try
            {
                DataRowView drv = (DataRowView)e.Row;
                DataRow row = drv.Row;

                UpdateProject(row);

            }
            catch (System.Exception ex)
            {
                MyErrExcu.E(ex);
            }
        }


        void UpdateProject(DataRow row)
        {
            //gridViewProject.UpdateCurrentRow();
            try
            {
                string strProjectName = "";

                //Trace.Assert(row.RowState != DataRowState.Unchanged);
                if (row.RowState == DataRowState.Unchanged)
                {
                    return;
                }
                if (row.RowState == System.Data.DataRowState.Added)
                {
                    //不允许添加重名项目
                     strProjectName = row["ProjectGroupName"].ToString();
                    if (this.projectTableTableAdapter.GetDataByProjectName(strProjectName).Count > 0)
                    {
                        MessageBox.Show("存在重复的项目");
                        return;
                    }
                }
                else if (row.RowState == System.Data.DataRowState.Modified)
                {
                    //不允许改到一个重名的项目

                    //不允许添加重名项目
                    strProjectName = row["ProjectGroupName"].ToString();
                    LMISV1DataSet.ProjectTableDataTable tmpTable = this.projectTableTableAdapter.GetDataByProjectName(strProjectName);

                    if (tmpTable.Count > 0)
                    {
                        //检查是不是自己所在的行,如果不是,则报错
                        int nCurProjectId = Convert.ToInt32(row["ProjectID"].ToString());
                        LMISV1DataSet.ProjectTableRow curRow = (LMISV1DataSet.ProjectTableRow)tmpTable.Rows[0];

                        if (nCurProjectId != curRow.ProjectID)
                        {
                            //int hRowHandle = e.RowHandle;
                            //object objRowId = gridViewProject.GetRowCellValue(hRowHandle, "ProjectID");
                            //if (null != objRowId)
                            //{
                            //    int nCurProjectId = Convert.ToInt32(objRowId);
                            //}

                            MessageBox.Show("存在重复的项目");
                            return;
                        }

                    }
                }
                else
                {

                }

                this.projectTableTableAdapter.Update(row);
                UpdateRelCaption(strProjectName);

            }
            catch (System.Exception ex)
            {
                MyErrExcu.E(ex);
            }
        }
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
31
软币
151
在线时间
7 小时
注册时间
2014-8-27
发表于 2014-8-27 10:01:39 | 显示全部楼层
简化一下,就是这样的。
DataRowView drv = (DataRowView)e.Row;
                 DataRow row = drv.Row;
this.projectTableTableAdapter.Update(row);
事实上,devExpress更新数据,并不是很容易。
如果你保留他我做好的那个工具条,点那个保存就可以了。
否则,你就需要用上面那行代码。
从我写的代码看出,gridViewProject.UpdateCurrentRow();
这样是不行的,这样只是把界面的数据写到了内存中,不是写入数据库。
如果有疑问,可以再联系我。
回复

使用道具 举报

0

精华

61

贡献

25

赞扬

帖子
77
软币
1852
在线时间
105 小时
注册时间
2013-6-8
 楼主| 发表于 2014-8-27 13:15:05 | 显示全部楼层
haoyujie 发表于 2014-8-27 10:01
简化一下,就是这样的。
DataRowView drv = (DataRowView)e.Row;
                 DataRow row = drv.Row; ...

非常感谢!先试试!初学!
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-5-4 16:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表