private void button8_Click(object sender, EventArgs e)
        {
            string name  = "@Name";
            string name2 = "@Name";

            using (MB.Util.MethodTraceWithTime trace = new MB.Util.MethodTraceWithTime("")) {
                Microsoft.Practices.EnterpriseLibrary.Data.Database db = MB.Orm.Persistence.DatabaseHelper.CreateDatabase();
                if (db is Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleDatabase)
                {
                    name = ":" + name.Substring(1, name.Length - 1);
                }

                double d1 = trace.GetExecutedTimes();
            }
            using (MB.Util.MethodTraceWithTime trace = new MB.Util.MethodTraceWithTime("")) {
                using (MB.Orm.Persistence.DatabaseConfigurationScope scop = new MB.Orm.Persistence.DatabaseConfigurationScope("SQL SERVER")) {
                    Microsoft.Practices.EnterpriseLibrary.Data.Database db2 = MB.Orm.Persistence.DatabaseHelper.CreateDatabase();
                    if (db2 is Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleDatabase)
                    {
                        name = ":" + name.Substring(1, name.Length - 1);
                    }
                    else if (db2 is Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase)
                    {
                        name = "@" + name.Substring(1, name.Length - 1);
                    }
                    else
                    {
                    }
                }
                double d2 = trace.GetExecutedTimes();
            }
        }
예제 #2
0
        private void button2_Click(object sender, EventArgs e)
        {
            int count = int.Parse(textBox1.Text);

            using (MB.Orm.Persistence.DatabaseConfigurationScope scope = new MB.Orm.Persistence.DatabaseConfigurationScope("SQL SERVER")) {
                using (MB.Util.MethodTraceWithTime t = new MB.Util.MethodTraceWithTime("BLUCK", count)) {
                    IList lstData = null;
                    if (chkDataTable.Checked)
                    {
                        DataTable dt = getDataTable(count, 1);
                        lstData = dt.Select();
                    }
                    else
                    {
                        lstData = getListData(count, 1);
                    }

                    using (MB.RuleBase.BulkCopy.IDbBulkExecute bulk = MB.RuleBase.BulkCopy.DbBulkExecuteFactory.CreateDbBulkExecute()) {
                        bulk.WriteToServer("MbfsFucDtl", "AddObject", lstData);
                    }

                    MessageBox.Show(string.Format("总共执行的时间有{0} 毫秒", t.GetExecutedTimes()));
                }
            }
        }
예제 #3
0
 private void button6_Click(object sender, EventArgs e)
 {
     using (MB.Util.MethodTraceWithTime trace = new MB.Util.MethodTraceWithTime("PPP")) {
         testHViewDataConvert frm = new testHViewDataConvert();
         frm.ShowDialog();
     }
 }
예제 #4
0
        /// <summary>
        /// 把数据绑定到XtraGrid 控件中。
        /// </summary>
        /// <param name="xtraGrid"></param>
        /// <param name="dataSource"></param>
        /// <param name="colPropertys"></param>
        /// <param name="imageDockRow"></param>
        /// <param name="editCols"></param>
        /// <returns></returns>
        public bool BindingToXtraGrid(DevExpress.XtraGrid.GridControl xtraGrid, object dataSource,
                                      Dictionary <string, MB.WinBase.Common.ColumnPropertyInfo> colPropertys,
                                      Dictionary <string, MB.WinBase.Common.ColumnEditCfgInfo> editCols, string xmlFileName,
                                      bool imageDockRow)
        {
            using (MB.Util.MethodTraceWithTime trace = new MB.Util.MethodTraceWithTime("MB.XWinLib.XtraGrid.XtraGridHelper.BindingToXtraGrid", xmlFileName)) {
                try {
                    MB.WinBase.Common.GridViewLayoutInfo gridViewLayoutInfo = null;
                    #region 根据GridViewLayoutInfo的配置来决定GridView的类型,甚至动态创建GridView
                    if (!string.IsNullOrEmpty(xmlFileName))
                    {
                        gridViewLayoutInfo =
                            MB.WinBase.LayoutXmlConfigHelper.Instance.GetGridColumnLayoutInfo(xmlFileName, GRID_VIEW_LAYOUT_NAME);
                        //首先看是否配置为DefaultGridView,如果是,则不做任何事情
                        if (gridViewLayoutInfo == null || gridViewLayoutInfo.GridLayoutColumns == null)
                        {
                            //如果没有配置DefaultGridView,则看是否有配置其他的GridView
                            gridViewLayoutInfo = MB.WinBase.LayoutXmlConfigHelper.Instance.GetGridColumnLayoutInfo(xmlFileName, string.Empty);
                            if (gridViewLayoutInfo != null && gridViewLayoutInfo.GridLayoutColumns != null)
                            {
                                if (gridViewLayoutInfo.GridViewType == WinBase.Common.GridViewType.AdvBandedGridView)
                                {
                                    //动态创建AdvBandedGridView
                                    DevExpress.XtraGrid.Views.BandedGrid.AdvBandedGridView advBandedView = new DevExpress.XtraGrid.Views.BandedGrid.AdvBandedGridView(xtraGrid);
                                    xtraGrid.MainView = advBandedView;
                                }
                            }
                        }
                    }

                    #endregion
                    string viewTypeName = xtraGrid.MainView.GetType().Name;

                    if (viewTypeName == "GridView")
                    {
                        return(createGridView(xtraGrid, dataSource, colPropertys, imageDockRow, editCols, gridViewLayoutInfo));
                    }
                    else
                    {
                        XtraGridEditHelper.Instance.CreateEditBandXtraGrid(new GridDataBindingParam(xtraGrid, dataSource), colPropertys, editCols, gridViewLayoutInfo);
                        return(true);
                    }
                }
                catch (Exception ex) {
                    throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, string.Format("通过XML文件{0}绑定XtraGrid 出错", xmlFileName));
                }
            }
        }
예제 #5
0
        private void button6_Click(object sender, EventArgs e)
        {
            int count = int.Parse(textBox1.Text);
            List <MY_TABLE_MAINInfo> myEntitys = new List <MY_TABLE_MAINInfo>();
            int beginID = 1;

            for (int i = 0; i < 1000; i++)
            {
                myEntitys.Add(new MY_TABLE_MAINInfo()
                {
                    ID = beginID++, NAME = "CCCC", CODE = "BB", ADDRESS = "PPP"
                });
            }
            using (MB.Orm.Persistence.DatabaseConfigurationScope scope = new MB.Orm.Persistence.DatabaseConfigurationScope("MB.MBFS")) {
                Database db = MB.Orm.Persistence.DatabaseHelper.CreateDatabase();
                using (MB.Util.MethodTraceWithTime t = new MB.Util.MethodTraceWithTime("BLUCK", count)) {
                    //using (SqlConnection cn = new SqlConnection(db.ConnectionString)) {
                    //    cn.Open();
                    //    using (SqlTransaction tran = cn.BeginTransaction()) {
                    //        try {
                    using (TransactionScope scopeTran = new TransactionScope()) {
                        using (MB.RuleBase.BulkCopy.IDbBulkExecute bulk = MB.RuleBase.BulkCopy.DbBulkExecuteFactory.CreateDbBulkExecute()) {
                            bulk.WriteToServer("MY_TABLE_MAIN", "UpdateObject", myEntitys);
                        }
                        // string data = MB.RuleBase.Common.DatabaseExcuteByXmlHelper.NewInstance.ExecuteScalar<string>("MY_TABLE_MAIN", "SelectObject", 10);

                        scopeTran.Complete();
                        // throw new Exception("ERROR");
                    }
                    //        tran.Commit();
                    //        // throw new Exception();
                    //    }
                    //    catch {
                    //        tran.Rollback();
                    //    }
                    //}
                    MessageBox.Show(string.Format("总共执行的时间有{0} 毫秒", t.GetExecutedTimes()));
                }
            }
        }
예제 #6
0
        /// <summary>
        ///  动态列绑定处理相关。
        /// </summary>
        /// <param name="dataSource"></param>
        /// <param name="gridControl"></param>
        /// <param name="xmlFileName"></param>
        public void CreateDataBinding(MB.WinBase.Data.HViewDataConvert <T> convertObject, List <T> lstEntitys, string gridLayoutCfgName)
        {
            using (MB.Util.MethodTraceWithTime trace = new MB.Util.MethodTraceWithTime("MB.WinClientDefault.Common.UIDynamicColumnBinding<" + typeof(T).FullName + ">.CreateDataBinding")) {
                _HViewConvertObject = convertObject;
                _CurrentEditEntitys = lstEntitys;


                var gridViewLayoutInfo = MB.WinBase.LayoutXmlConfigHelper.Instance.GetGridColumnLayoutInfo(_CurrentXmlFileName, gridLayoutCfgName);
                MB.XWinLib.XtraGrid.DynamicColumnBandGridHelper <T> dynamicBandHelper = new MB.XWinLib.XtraGrid.DynamicColumnBandGridHelper <T>();


                _CurrentEditTable = convertObject.Convert(lstEntitys, _ColPropertys);

                onAfterDataConvert();

                if (convertObject.ConvertCfgParam.DynamicColumnCaption)
                {
                    gridViewLayoutInfo = dynamicBandHelper.ResetDynamicCaptionColumnViewLayout(convertObject, gridViewLayoutInfo);
                }
                else
                {
                    gridViewLayoutInfo = dynamicBandHelper.ResetDynamicColumnViewLayout(convertObject, gridViewLayoutInfo);
                }

                var detailBindingParams = new MB.XWinLib.GridDataBindingParam(_XtraGrid, _CurrentEditTable, false);


                MB.XWinLib.XtraGrid.XtraGridEditHelper.Instance.CreateEditXtraGrid(detailBindingParams, _ColPropertys, _EditCols, gridViewLayoutInfo);
                //if (convertObject.ConvertCfgParam.DynamicColumnCaption) {
                iniDynamicBandColumns();
                // }
                MB.XWinLib.XtraGrid.XtraGridViewHelper.Instance.SetGridViewNewItem(_XtraGrid, false);
                _XtraGrid.ReSetContextMenu(XtraContextMenuType.QuickInput
                                           | XtraContextMenuType.Export | XtraContextMenuType.SaveGridState);


                setDynamicColumnOnFocusedRowChanged(_AdvBandGridView.FocusedRowHandle);
            }
        }
예제 #7
0
        private void button4_Click(object sender, EventArgs e)
        {
            int count = int.Parse(textBox1.Text);

            using (MB.Orm.Persistence.DatabaseConfigurationScope scope = new MB.Orm.Persistence.DatabaseConfigurationScope("SQL SERVER")) {
                Database db = MB.Orm.Persistence.DatabaseHelper.CreateDatabase();
                using (MB.Util.MethodTraceWithTime t = new MB.Util.MethodTraceWithTime("BLUCK", count)) {
                    using (SqlConnection cn = new SqlConnection(db.ConnectionString)) {
                        cn.Open();
                        using (SqlTransaction tran = cn.BeginTransaction()) {
                            try {
                                IList lstData = null;
                                if (chkDataTable.Checked)
                                {
                                    DataTable dt = getDataTable(count, 1);
                                    lstData = dt.Select();
                                }
                                else
                                {
                                    lstData = getListData(count, 1);
                                }
                                using (MB.RuleBase.BulkCopy.IDbBulkExecute bulk = MB.RuleBase.BulkCopy.DbBulkExecuteFactory.CreateDbBulkExecute(tran)) {
                                    bulk.WriteToServer("MbfsFucDtl", "AddObject", lstData);
                                }
                                tran.Commit();
                                // throw new Exception();
                            }
                            catch {
                                tran.Rollback();
                            }
                        }
                    }
                    MessageBox.Show(string.Format("总共执行的时间有{0} 毫秒", t.GetExecutedTimes()));
                }
            }
        }
예제 #8
0
        private void button1_Click(object sender, EventArgs e)
        {
            int count = int.Parse(textBox1.Text);

            using (MB.Util.MethodTraceWithTime t = new MB.Util.MethodTraceWithTime("BLUCK", count)) {
                int   idC     = MB.Orm.Persistence.EntityIdentityHelper.NewInstance.GetEntityIdentity("MBFS_FUC_DTL", count);
                IList lstData = null;
                if (chkDataTable.Checked)
                {
                    DataTable dt = getDataTable(count, idC);
                    lstData = dt.Select();
                }
                else
                {
                    lstData = getListData(count, idC);
                }

                using (MB.RuleBase.BulkCopy.IDbBulkExecute bulk = MB.RuleBase.BulkCopy.DbBulkExecuteFactory.CreateDbBulkExecute()) {
                    bulk.WriteToServer("MbfsFucDtl", "AddObject", lstData);
                }

                MessageBox.Show(string.Format("总共执行的时间有{0} 毫秒", t.GetExecutedTimes()));
            }
        }
예제 #9
0
        /// <summary>
        /// 异步调用服务端方法获取对应的数据。
        /// </summary>
        /// <param name="clientProxy">clientProxy 对应的WCF 服务端业务类必须实现接口MB.RuleBase.IFace.IAsynGetEntitysInvoke</param>
        /// <param name="dataInDocType">获取的数据在单据中的数据类型,如果没有就输入0</param>
        /// <param name="paramValues">参数值,根据服务端对应方法决定(可以为空)</param>
        /// <param name="filterParams">动态查询参数,根据服务端对应方法决定 (可以为空)</param>
        /// <returns>实体集合类</returns>
        public IList InvokeGetObjectData(TChannel clientProxy, int dataInDocType, string[] paramValues, MB.Util.Model.QueryParameterInfo[] filterParams)
        {
            using (MB.Util.MethodTraceWithTime trace = new MB.Util.MethodTraceWithTime(string.Format("AsynGetEntitysHelper<{0}> 开始执行方法{1} ",
                                                                                                     typeof(TChannel).FullName, ASYN_INVOKE_METHOD))) {
                //先调用参数为 index 为 -1 进行初始化
                try {
                    string xmlFilterParams = string.Empty;
                    if (filterParams != null && filterParams.Length > 0)
                    {
                        xmlFilterParams = MB.Util.Serializer.QueryParameterXmlSerializer.DefaultInstance.Serializer(filterParams);
                    }
                    GreatCapacityInvokeParamInfo iniParam = new GreatCapacityInvokeParamInfo(dataInDocType, xmlFilterParams);
                    iniParam.ParamValues = paramValues;
                    GreatCapacityResult reVal = MB.WcfServiceLocator.WcfClientHelper.Instance.InvokeServerMethod(clientProxy,
                                                                                                                 ASYN_INVOKE_METHOD, iniParam) as GreatCapacityResult;
                    if (reVal == null)
                    {
                        throw new MB.Util.APPException(string.Format("请WCF 客户端{0} 对应的服务业务类是否已经实现了接口{1}",
                                                                     clientProxy.GetType().FullName, "MB.RuleBase.IFace.IAsynGetEntitysInvoke")
                                                       , MB.Util.APPMessageType.SysErrInfo);
                    }

                    int count = reVal.MaxSegment;

                    IAsyncResult[] res = new IAsyncResult[count];
                    System.Collections.Generic.SortedList <int, IList> dataList = new SortedList <int, IList>();

                    for (int i = 0; i < count; i++)
                    {
                        GreatCapacityInvokeParamInfo bparam = new GreatCapacityInvokeParamInfo(i);
                        object re = MB.WcfServiceLocator.WcfClientHelper.Instance.InvokeServerMethod(clientProxy,
                                                                                                     "Begin" + ASYN_INVOKE_METHOD, bparam, null, 0);
                        res[i] = (IAsyncResult)re;
                    }
                    for (int i = 0; i < count; i++)
                    {
                        if (res[i].IsCompleted)
                        {
                            GreatCapacityResult reData = MB.WcfServiceLocator.WcfClientHelper.Instance.InvokeServerMethod(clientProxy,
                                                                                                                          "End" + ASYN_INVOKE_METHOD, res[i]) as GreatCapacityResult;
                            if (reData == null || reData.SegmentData == null)
                            {
                                throw new MB.Util.APPException("服务端业务类要根据传入参数的不同进行相应的处理,当获取数据时返回值SegmentData 为空",
                                                               MB.Util.APPMessageType.SysErrInfo);
                            }

                            dataList.Add(i, reData.SegmentData);
                        }
                        else
                        {
                            System.Threading.Thread.Sleep(100);
                            //通过这种变态的方式 等待直到接收到数据为止。
                            i--;
                        }
                    }

                    ArrayList relst = new ArrayList();
                    foreach (var v in dataList.Values)
                    {
                        relst.AddRange(v);
                    }
                    return(relst);
                }
                catch (Exception ex) {
                    throw ex;
                }
            }
        }
        /// <summary>
        /// 根据查询条件获取数据。
        /// </summary>
        /// <param name="dataInDocType"></param>
        /// <param name="filterParameters"></param>
        /// <returns></returns>
        public System.Collections.IList GetFilterObjects(int dataInDocType, List <MB.Util.Model.QueryParameterInfo> filterParameters)
        {
            if (_InvokeFilterParentFormHoster != null)
            {
                InvokeDataAssistantHosterEventArgs arg = new InvokeDataAssistantHosterEventArgs(_ClientRule, _ClumnEditCfgInfo, _CurrentEditObject, filterParameters);
                _InvokeFilterParentFormHoster.BeforeGetFilterData(_InvokeParentControl, arg);
                if (arg.Cancel)
                {
                    return(null);
                }
            }
            try
            {
                if (_QueryObject != null)
                {
                    return(_QueryObject.GetFilterObjects(filterParameters.ToArray()));
                }
                if (_InvokeDataSourceDesc == null)
                {
                    IList lstDatas = null;
                    try
                    {
                        using (MB.Util.MethodTraceWithTime timeTrack = new MB.Util.MethodTraceWithTime(null))
                        {
                            lstDatas = _ClientRule.GetObjects((int)_ClientRule.MainDataTypeInDoc, filterParameters.ToArray());

                            var msg = string.Format("查询花费:{0} 毫秒,返回 {1} 记录", timeTrack.GetExecutedTimes(), lstDatas.Count);
                            MB.WinBase.AppMessenger.DefaultMessenger.Publish(QUERY_REFRESH_MSG_ID, msg);
                        };
                    }
                    catch (Exception ex)
                    {
                        throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, " GetObjects 出错!");
                    }
                    return(lstDatas);
                }

                string[]  desc = _InvokeDataSourceDesc.Method.Split(',');
                ArrayList pars = new ArrayList();
                if (desc.Length > 1)
                {
                    string[] ss = desc[1].Split(';');
                    foreach (var s in ss)
                    {
                        //判断是否为
                        pars.Add(MB.WinBase.AppEnvironmentSetting.Instance.ConvertSystemParamValue(s));
                    }
                }
                if (filterParameters != null && filterParameters.Count > 0)
                {
                    pars.Add(filterParameters.ToArray());
                }
                else
                {
                    if (_InvokeDataSourceDesc.ExistsFilterParams)
                    {
                        //判断调用的方法是否存在过滤的参数,如果存在需要进行特殊的处理(默认情况下存在)
                        List <MB.Util.Model.QueryParameterInfo> filterParam = new List <MB.Util.Model.QueryParameterInfo>();
                        filterParam.Add(new MB.Util.Model.QueryParameterInfo("1", "1", MB.Util.DataFilterConditions.Special));
                        pars.Add(filterParam.ToArray());
                    }
                }
                //object val = MB.Util.MyReflection.Instance.InvokeMethod(_ClientRule, desc[0], pars.ToArray());
                // object val = MB.Util.MyReflection.Instance.InvokeMethodByName(_ClientRule, desc[0], pars.ToArray());
                object val = null;
                try
                {
                    using (MB.Util.MethodTraceWithTime timeTrack = new MB.Util.MethodTraceWithTime(null))
                    {
                        val = MB.Util.MyReflection.Instance.InvokeMethod(_ClientRule, desc[0], pars.ToArray());

                        var msg = string.Format("查询花费:{0} 毫秒,返回 {1} 记录", timeTrack.GetExecutedTimes(), (val as IList).Count);
                        MB.WinBase.AppMessenger.DefaultMessenger.Publish(QUERY_REFRESH_MSG_ID, msg);
                    };
                }
                catch (Exception ex)
                {
                    throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, desc[0] + " 出错!");
                }

                return(val as IList);
            }
            catch (Exception ex)
            {
                throw MB.Util.APPExceptionHandlerHelper.PromoteException(ex, "调用方法 MB.WinClientDefault.QueryFilter.FrmGetObjectDataAssistant::GetFilterObjects  获取数据有误");
            }
            return(null);
        }