FineUI 官方论坛

标题: Grid如何使用Grid1.CommitChanges()更新数据库 [打印本页]

作者: 舞柯庶    时间: 2013-6-9 17:32
标题: Grid如何使用Grid1.CommitChanges()更新数据库
Grid 使用DataTable作为数据源;
  Grid1.DataSource = table;
   Grid1.DataBind();

想问下如何使用  CommitChanges()更新数据库呢?
如何不能更新,是不是需要按普通方法写SQL语句更新呢?

作者: sanshi    时间: 2013-6-9 17:48
CommitChanges() 只是用来更新前段UI的,更新数据库需要自己写代码:http://fineui.com/demo/#/demo/grid/grid_editor_cell.aspx
作者: 舞柯庶    时间: 2013-6-9 17:49
另外在 GRID编辑中,使用自动补全,无法使用!
作者: 舞柯庶    时间: 2013-6-9 18:35
明白了! 还有个问题。GRID编辑中 如何后台绑定 下拉框呢?
新版本是否解决了 GRID编辑 复选框?还有 排序呢?
作者: erp8@live.cn    时间: 2013-6-10 09:02
CommitChanges() 只是用来更新前段UI的,更新数据库需要自己写代码:http://fineui.com/demo/#/demo/grid/grid_editor_cell.aspx

更新数据库需要自己写代码:
-----各位大神可否做示例,让我们学习一下?

作者: 舞柯庶    时间: 2013-6-10 18:05
本帖最后由 舞柯庶 于 2013-6-10 18:06 编辑

抛砖引玉:
                  Dictionary<int, Dictionary<int, string>> modifiedDict = xGrid.GetModifiedDict();
                //获取修改后的数据集合xGrid.GetModifiedData().ToString()               

                string xSqls = "";  
                string xIdS="";
                for (int i = 0, count = xGrid.Rows.Count; i < count; i++)
                {
                    if (modifiedDict.ContainsKey(i))//当前行是否修改
                    {
                        if (xSqls == "")
                        {
                            xSqls = "Update xtable Set CL_UpdateName='"+Session["user_name"].ToString()+"',CL_UpdateDate=GetDate()";
                             xIdS=xGrid.DataKeys[0].ToString();
                        }
                        else
                        {
                            xSqls = xSqls + "$Update xtable Set CL_UpdateName='" + Session["user_name"].ToString() + "',CL_UpdateDate=GetDate()";
                            xIdS=xIdS+","+xGrid.DataKeys[0].ToString();
                        }
                       

                        Dictionary<int, string> rowDict = modifiedDict;               
                        
                                                                  

                        //数量
                        if (rowDict.ContainsKey(4))//是否修改
                        {
                            xSqls = xSqls + ",CL_Num=" + Convert.ToDouble(rowDict[4]);
                        }
                          // 单重
                        if (rowDict.ContainsKey(9))
                        {
                            xSqls = xSqls + ",CL_Weight=" + rowDict[9].ToString();
                        }
                        // 备注
                        if (rowDict.ContainsKey(10))
                        {
                           xSqls = xSqls + ",CL_Meno=" + rowDict[10].ToString();                           
                        }

                        xSqls = xSqls + " Where Id=" + xGrid.DataKeys[0].ToString();
                    }
                }//for

                    

                DB db = new DB();

               
                string[] sql_arr = xSqls.Split('$');
                db.Exec_Trans(sql_arr);





欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/) Powered by Discuz! X3.4