Example #1
0
        // 数据库命令的维护 - 打开数据集
        public bool rsOpen(ref System.Data.DataSet dst, string pSQL)
        {
            bool blnResult;

//
            if (dst == null)
            {
                dst = new System.Data.DataSet();
            }

            // 清控原来的数据
            dst.Clear();
            if (dst.Tables.Count > 0)
            {
                dst.Tables[0].Columns.Clear();
            }

            try
            {
                // del 2002-12-18
                //this.DisConnect();
                // endd

                // 连接
                if (blnResult = Connect())
                {
                    // 填充数据
                    new System.Data.SqlClient.SqlDataAdapter(pSQL, this.Connection).Fill(dst);

                    blnResult = dst.Tables.Count > 0;
                }
            }
            catch (System.Exception ee)
            {
                blnResult = false;

                if (this.Debug)
                {
                    U_Pub_Zwd.ErrorMessage("数据集打开错误:" + ee.Message);
                }
            }
            finally
            {
                // 断开
                // del 2002-12-18
                //DisConnect();
                // endd
            }

            return(blnResult);
        }
Example #2
0
        // rsBindTree, rsBindTreeEx
        // 绑定 TreeView
        // dst 的结构:
        // 冗余的分组结构(不用 Group By, 用重复表示分组),并且按分组排序,Levels 指定分组数(即层数)
        // ImageIndex 是用分号分割的一个字串,每个元素代表一个图标索引
        public bool rsBindTree(ref System.Data.DataSet dst, string pSQL, System.Windows.Forms.TreeView tvw
                               , int Levels, string ImageIndex)
        {
            if ((dst == null && pSQL == "") || tvw == null)
            {
                return(false);
            }

            if (pSQL != "")
            {
                rsOpen(ref dst, pSQL);
            }

            return(U_Pub_Zwd.rsBindTree(dst, tvw, Levels, ImageIndex));
        }
Example #3
0
        // 绑定 ListView
        // HideColumns 以分号分割的隐藏列号组合
        public bool rsBindList(ref System.Data.DataSet dst, string pSQL, System.Windows.Forms.ListView lvw
                               , int ImageIndex, string HideColumns, int SortColumn)
        {
            if ((dst == null && pSQL == "") || lvw == null)
            {
                return(false);
            }

            if (pSQL != "")
            {
                rsOpen(ref dst, pSQL);
            }

            return(U_Pub_Zwd.rsBindList(dst.Tables[0], lvw, ImageIndex, HideColumns, SortColumn));
        }
Example #4
0
        // 数据库命令的维护 - 执行命令
        public bool SQLExecute(string pSQL)
        {
            bool blnResult;

            System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(pSQL, this.Connection);

            // add 2003-06-05
            cmd.CommandTimeout = 300;
            // enda

            try
            {
                // del 2002-12-18
                //this.DisConnect();
                // endd

                // 连接
                if (blnResult = Connect())
                {
                    // 执行
                    cmd.ExecuteNonQuery();
                }
            }
            catch (System.Exception ee)
            {
                blnResult = false;

                if (this.Debug)
                {
                    U_Pub_Zwd.ErrorMessage("数据库命令错误:" + ee.Message);
                }
            }
            finally
            {
                // 断开
                // del 2002-12-18
                //DisConnect();
                // endd
            }

            return(blnResult);
        }
Example #5
0
        // 数据库连接的维护 - 打开连接
        public bool Connect()
        {
            if (!Connected)
            {
                try
                {
                    Connection.ConnectionString = strConnection;
                    Connection.Open();
                    Connected = (Connection.State == System.Data.ConnectionState.Open);
                }
                catch (System.Exception ee)
                {
                    Connected = false;

                    if (this.Debug)
                    {
                        U_Pub_Zwd.ErrorMessage("数据库连接错误:" + ee.Message);
                    }
                }
            }

            return(Connected);
        }
Example #6
0
        // 绑定 ListView
        // HideColumns 以分号分割的隐藏列号组合
        static public bool rsBindList(System.Data.DataTable dt, System.Windows.Forms.ListView lvw
                                      , int ImageIndex, string HideColumns)
        {
            int intWidth = 0, intWidths = 0, intMax = 0, intWidth2 = 0;

            if (dt == null || lvw == null)
            {
                return(false);
            }

            lvw.ListViewItemSorter = null;
            // del 2002-12-13
            //lvw.Sorting = System.Windows.Forms.SortOrder.Ascending;
            // endd
            lvw.Clear();

            System.Windows.Forms.ListViewItem li;

            // 增加表头
            int intCols = dt.Columns.Count;

            for (int intCol = 0; intCol < intCols; intCol++)
            {
                if (U_Pub_Zwd.IsIn(intCol.ToString(), HideColumns))
                {
                    intWidth = 0;
                }
                else if (intCol == 0)
                {
                    intWidth2 = (intWidth = 300);
                    intMax    = intCol;
                }
                else
                {
                    intWidth2 = (intWidth = 100);
                    intMax    = intCol;
                }

                lvw.Columns.Add(dt.Columns[intCol].ColumnName, intWidth, System.Windows.Forms.HorizontalAlignment.Left);
                intWidths += intWidth;
            }
            // move 2003-04-25

            /*
             * intWidth = lvw.ClientSize.Width - intWidths + intWidth2 - 16;
             * if(intWidth > 0)
             *      lvw.Columns[intMax].Width = intWidth;
             */
            // endm =>

            // 增加数据
            int intRows = dt.Rows.Count;

            for (int intRow = 0; intRow < intRows; intRow++)
            {
                if (dt.Rows[intRow].RowState == System.Data.DataRowState.Deleted)
                {
                    continue;
                }

                li            = lvw.Items.Add(dt.Rows[intRow][0].ToString());
                li.ImageIndex = ImageIndex;
                for (int intCol = 1; intCol < intCols; intCol++)
                {
                    li.SubItems.Add(dt.Rows[intRow][intCol].ToString());
                }
            }

            // => move 2003-04-25
            intWidth = lvw.ClientSize.Width - intWidths + intWidth2;
            if (intWidth > 0)
            {
                lvw.Columns[intMax].Width = intWidth;
            }
            // endm

            return(true);
        }
Example #7
0
        // Row 作为全局的行指针
        static private bool rsBindTreeEx(System.Data.DataSet dst, System.Windows.Forms.TreeNode tn
                                         , ref int Row, int Rows, int Col, int Levels, string ImageIndex)
        {
            bool   b;
            string s;

            if (Col == Levels)
            {
                return(true);
            }

            while (Row < Rows)
            {
                // 检查分组 Col(Col<Levels) 的重复性,如果全部重复,表示该行仍在该组,否则转下一组
                System.Windows.Forms.TreeNode t = tn;
                b = true;
                for (int i = Col; i > 0; i--)
                {
                    if (!(b = (t.Text == U_Pub_Zwd.GetFirstString(dst.Tables[0].Rows[Row][i - 1].ToString(), "-"))))
                    {
                        break;
                    }
                    t = t.Parent;
                }

                if (!b)
                {
                    // 返回上一级
                    return(false);
                }
                else
                {
                    try
                    {
                        s = dst.Tables[0].Rows[Row][Col].ToString();
                    }
                    catch
                    {
                        s = "";
                    }

                    if (s.Length > 0)
                    {
                        // 增加该节点
                        t            = tn.Nodes.Add(U_Pub_Zwd.GetFirstString(s, "-"));
                        t.Tag        = U_Pub_Zwd.GetLastString(s, "-");
                        t.ImageIndex = (t.SelectedImageIndex = System.Convert.ToInt16(ImageIndex.Split(';')[Col]));

                        // 进入下一级
                        if (Col + 1 < Levels)
                        {
                            // 返回上一级
                            if (!rsBindTreeEx(dst, t, ref Row, Rows, Col + 1, Levels, ImageIndex))
                            {
                                Row--;
                            }
                        }
                    }
                }

                Row++;
            }

            return(true);
        }