zoukankan      html  css  js  c++  java
  • 最近两个月的总结——devgridview,dataset

    最近两个月的总结——devgridview,dataset

    最近两个月开发了两个小画面——合同管理系统

    刚刚接到任务的时候发现画面有不下余80多个控件,对于我这个只有几个月工作经验的菜鸟中的菜鸟来说有些吓人,当时问了下老员工如果他们做,多久能做完?

    给我的答复:画面比较复杂,业务比较多,最多的时候同时保存十四张表,数据量大了怎么办等等。。。

    不管怎么样,给我任务了总要完成啊。没办法试着做,不会请教同事。不过还好,将近一个月的时间做完了第一个复杂的画面,第二个汇总的画面简单多了,两天搞定。

    学到的技术自我感觉提升了不少,

    1、开发自定义控件,页面上有很多是重复的控件,

    2、属性的get set方法体会的更深了

     public bool ControlEnable
            {
                set {
                    this.UCTxtSubCode.Enabled =value;
                    this.UCTxtSubName.Enabled = value;
                      }
            }

    3、blod 在oralce数据库中保存和更新,必须转换为字节流

        private byte[] FileToByte(string pStrFName)
            {
                if (pStrFName.Trim() == string.Empty)
                {
                    pStrFName = "  ";
                }
                byte[] values = System.Text.Encoding.Default.GetBytes(pStrFName);
                return values;
            }

     private void GetChgNote(DataRow row)
            {
                if (row["CONTENT"] == DBNull.Value) return;
                byte[] btData = (byte[])row["CONTENT"];
                //显示合同文本
                MOContractEdit.Text = System.Text.Encoding.Default.GetString(btData);
            }

    4、在devgridview中的中间添加新行(通过行号)

    我的做法比较麻烦

    如果gridview绑定的表有行号等做主键,则根据行号确定在gridview绑定的表中插入数据的位置,然后在重新根据行号排序

    如果没有行号,那么自己临时添加行号

           //新增行号列一排序用
                    PlanLogDayDS.Tables["INVPLAN"].Columns.Add("gcLine", typeof(int));
                    //排序行号
                    SortRowNo(PlanLogDayDS.Tables["INVPLAN"], "gcLine");
                    int selrow = GridVDate.FocusedRowHandle;
                    DataRow newRow = PlanLogDayDS.Tables["INVPLAN"].NewRow();
                    for (int i = selrow; i < PlanLogDayDS.Tables["INVPLAN"].Rows.Count; i++)
                    {
                        DataRow row = PlanLogDayDS.Tables["INVPLAN"].Rows[i];
                        if (row.RowState == DataRowState.Deleted) continue;
                        //行号
                        row["gcLine"] = Convert.ToInt32(row["gcLine"]) + 1;
                    }
                    newRow["gcLine"] = selrow + 1;
                    PlanLogDayDS.Tables["INVM011_INVPLAN"].Rows.Add(newRow);
                    DataTable dt = PlanLogDayDS.Tables["INVPLAN"].Clone();
                    dt.Clear();
                    DataRow[] drs = PlanLogDayDS.Tables["INVPLAN"].Select("", "gcLine asc");
                    foreach (DataRow r in drs)
                    {
                        dt.ImportRow(r);
                    }
                    PlanLogDayDS.Tables["INVPLAN"].Clear();
                    PlanLogDayDS.Tables["INVPLAN"].Merge(dt);
                    PlanLogDayDS.Tables["INVPLAN"].Columns.Remove("gcLine");

  • 相关阅读:
    (转帖) oracle是否归档模式及修改模式
    (转帖) Oracle实例恢复(Oracle instance recovery)
    实习第一周总结
    UML类图几种关系的总结
    表格排序
    利用js查找页面中的内链,外链
    事件机制(事件冒泡与事件捕获)
    谈 CSS 模块化
    初学后台框架总结篇二——快速了解CI框架
    初学后台框架总结篇一——学习过程
  • 原文地址:https://www.cnblogs.com/6303c/p/1663880.html
Copyright © 2011-2022 走看看