コード例 #1
0
        protected virtual DanhMucItemData Convert(DataRow row)
        {
            dynamic data = new DynamicDataRow(row);

            DanhMucItemData obj = new DanhMucItemData();

            obj.ID            = System.Convert.ToInt32(data.ID);
            obj.MaLoaiDanhMuc = System.Convert.ToString(data.MaLoaiDanhMuc);
            obj.MaDanhMuc     = System.Convert.ToString(data.MaDanhMuc);
            obj.TenDanhMuc    = System.Convert.ToString(data.TenDanhMuc);
            obj.MoTa          = System.Convert.ToString(data.MoTa);
            obj.ThuTu         = System.Convert.ToInt32(data.ThuTu);
            obj.IntVal1       = System.Convert.ToInt32(data.IntVal1);
            obj.IntVal2       = System.Convert.ToInt32(data.IntVal2);
            obj.IntVal3       = System.Convert.ToInt32(data.IntVal3);
            obj.DecVal1       = System.Convert.ToDecimal(data.DecVal1);
            obj.DecVal2       = System.Convert.ToDecimal(data.DecVal2);
            obj.DecVal3       = System.Convert.ToDecimal(data.DecVal3);
            obj.StrVal1       = System.Convert.ToString(data.StrVal1);
            obj.StrVal2       = System.Convert.ToString(data.StrVal2);
            obj.StrVal3       = System.Convert.ToString(data.StrVal3);
            obj.Active        = System.Convert.ToBoolean(data.Active);


            return(obj);
        }
コード例 #2
0
    public static List <dynamic> RunSql(string _sql, Controller _controller)
    {
        List <dynamic> _dataRows = new List <dynamic>();

        try
        {
            using (SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["RBAC_Model"].ConnectionString))
            {
                sqlConn.Open();
                SqlCommand sqlComm = new SqlCommand(_sql, sqlConn);
                sqlComm.CommandType = CommandType.Text;
                SqlDataReader dReader = sqlComm.ExecuteReader();

                while (dReader.Read())
                {
                    DynamicDataRow _row = new DynamicDataRow();
                    for (int i = 0; i < dReader.FieldCount; i++)
                    {
                        _row.AddColumn(dReader.GetName(i), GetValue(dReader, i), dReader.GetDataTypeName(i).ToString());
                    }
                    _dataRows.Add(_row);
                }
                sqlConn.Close();
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        return(_dataRows);
    }
コード例 #3
0
        private async Task QueryRows(object query)
        {
            string where = "";
            if (query != null)
            {
                where = query.ToString();
            }
            IsLoading = true;
            lock (_theLock) {
                ListOfRows.Clear();
            }
            if (_layerSource == null)
            {
                _layerSource = await _selectedLayer.getFeatureClass();
            }
            if (_layerSource != null)
            {
                var data = new List <DynamicDataRow>();
                await QueuingTaskFactory.StartNew(() => {
                    var queryFilter = new ArcGIS.Core.Data.QueryFilter {
                        WhereClause = where
                    };
                    int maxcols      = 6;
                    RowCursor cursor = _layerSource.Search(queryFilter);
                    if (cursor.MoveNext())
                    {
                        ExtendListView.Columns = new List <ArcGIS.Core.Data.Field>();
                        maxcols = cursor.Current.Fields.Count() > 6 ? 6 : cursor.Current.Fields.Count();

                        for (int c = 0; c < maxcols; c++)
                        {
                            ExtendListView.Columns.Add(cursor.Current.Fields[c]);
                        }
                        do
                        {
                            var row = new DynamicDataRow();
                            for (int v = 0; v < maxcols; v++)
                            {
                                row[GetName(cursor.Fields[v])] = cursor.Current[v].ToString();
                            }
                            data.Add(row);
                        } while (cursor.MoveNext());
                    }
                });

                lock (_theLock) {
                    ListOfRows = null;
                    ListOfRows = data;
                }
            }
            RaisePropertyChanged("ListOfRows");
            Status    = string.Format("{0} rows loaded", ListOfRows.Count());
            IsLoading = false;
        }
コード例 #4
0
        protected virtual DanhMucData Convert(DataRow row)
        {
            dynamic data = new DynamicDataRow(row);

            DanhMucData obj = new DanhMucData(); // Chú ý Int64 hoặc Int32 phụ thuộc vào kiểu - dễ lẫn chỗ này

            obj.MaLoaiDanhMuc  = System.Convert.ToString(data.MaLoaiDanhMuc);
            obj.TenLoaiDanhMuc = System.Convert.ToString(data.TenLoaiDanhMuc);
            obj.ThuTu          = System.Convert.ToInt32(data.ThuTu);
            obj.System         = System.Convert.ToBoolean(data.System);

            return(obj);
        }
コード例 #5
0
        public static object Cast(DynamicDataRow record, Type type)
        {
            var generetedObject   = Activator.CreateInstance(type);
            var properties        = type.GetProperties();
            var propertiesCounter = 0;

            foreach (var column in record.Columns)
            {
                var value = record[column];
                properties[propertiesCounter].SetValue(generetedObject, value, null);
                propertiesCounter++;
            }
            return(generetedObject);
        }
コード例 #6
0
        protected virtual SysGroupData Convert(DataRow row)
        {
            dynamic data = new DynamicDataRow(row);

            SysGroupData obj = new SysGroupData();

            obj.ID          = System.Convert.ToInt32(data.ID);
            obj.ID_Creator  = System.Convert.ToInt32(data.ID_Creator);
            obj.Name        = System.Convert.ToString(data.Name);
            obj.Description = System.Convert.ToString(data.Description);
            obj.Active      = System.Convert.ToBoolean(data.Active);


            return(obj);
        }
コード例 #7
0
ファイル: DatabaseHandler.cs プロジェクト: nkasozi/DbEntity
    public static dynamic[] ExecuteStoredProcDynamically(string StoredProc, params object[] parameters)
    {
        List <dynamic> objects = new List <dynamic>();
        DataTable      dt      = new DataTable();

        try
        {
            DbInitializer.ThrowExceptionIfInitailizationWasNotSuccessfull();
            DbCommand procommand = _database.GetStoredProcCommand(StoredProc, parameters);
            dt = _database.ExecuteDataSet(procommand).Tables[0];
            foreach (DataRow row in dt.Rows)
            {
                dynamic drow = new DynamicDataRow(row);
                objects.Add(drow);
            }
            return(objects.ToArray());
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
コード例 #8
0
        protected virtual SysAccountData Convert(DataRow row)
        {
            dynamic data = new DynamicDataRow(row);

            SysAccountData obj = new SysAccountData();

            obj.ID         = System.Convert.ToInt32(data.ID);
            obj.Username   = System.Convert.ToString(data.Username);
            obj.Password   = System.Convert.ToString(data.Password);
            obj.RealName   = System.Convert.ToString(data.RealName);
            obj.Email      = System.Convert.ToString(data.Email);
            obj.ID_DonVis  = System.Convert.ToString(data.ID_DonVis);
            obj.LastAccess = data.LastAccess != null?System.Convert.ToDateTime(data.LastAccess) : (DateTime?)null;

            obj.Active      = System.Convert.ToBoolean(data.Active);
            obj.AccountType = System.Convert.ToByte(data.AccountType);
            obj.Creator_ID  = System.Convert.ToInt32(data.Creator_ID);
            obj.ID_DonViGoc = System.Convert.ToInt32(data.ID_DonViGoc);
            obj.IsUpdate    = System.Convert.ToBoolean(data.IsUpdate);


            return(obj);
        }
コード例 #9
0
        public void BasicDataRowTests()
        {
            DataTable table = new DataTable("table");

            table.Columns.Add(new DataColumn()
            {
                ColumnName = "Name", DataType = typeof(string)
            });
            table.Columns.Add(new DataColumn()
            {
                ColumnName = "Entered", DataType = typeof(DateTime)
            });
            table.Columns.Add(new DataColumn()
            {
                ColumnName = "NullValue", DataType = typeof(string)
            });

            DataRow row = table.NewRow();

            DateTime now = DateTime.Now;

            row["Name"]      = "Rick";
            row["Entered"]   = now;
            row["NullValue"] = null; // converted in DbNull

            dynamic drow = new DynamicDataRow(row);

            string   name    = drow.Name;
            DateTime entered = drow.Entered;
            string   nulled  = drow.NullValue;

            Assert.AreEqual(name, "Rick");
            Assert.AreEqual(entered, now);
            Assert.IsNull(nulled);
            // this should throw a RuntimeBinderException
            Assert.AreEqual(entered, drow.enteredd);
        }
コード例 #10
0
        protected virtual SysGroupData Convert(DataRow row)
        {
            dynamic data = new DynamicDataRow(row);

            SysGroupData obj = new SysGroupData();

            obj.ID = System.Convert.ToInt32(data.ID);
            obj.ID_Creator = System.Convert.ToInt32(data.ID_Creator);
            obj.Name = System.Convert.ToString(data.Name);
            obj.Description = System.Convert.ToString(data.Description);
            obj.Active = System.Convert.ToBoolean(data.Active);

            return obj;
        }
コード例 #11
0
        private async void ReadRows()
        {
            if (_executeQuery)
            {
                return;
            }
            if (_gdbPath.IsEmpty())
            {
                return;
            }
            if (SelectedTableName.IsEmpty())
            {
                return;
            }

            _executeQuery = true;
            _columns.Clear();
            _timer.Start();
            OnPropertyChanged("IsExecutingQuery");

            string tableName = SelectedTableName.Split(new char[] { '(', ')' }, StringSplitOptions.RemoveEmptyEntries)[1].Trim();

            var data = new ObservableCollection <DynamicDataRow>();

            try {
                //Note, we have to return something
                await TaskUtils.StartSTATask <int>(() => {
                    using (Geodatabase gdb = new Geodatabase(
                               new FileGeodatabaseConnectionPath(new Uri(_gdbPath, UriKind.Absolute))))
                    {
                        var table = gdb.OpenDataset <Table>(tableName);

                        RowCursor cursor           = table.Search();
                        IReadOnlyList <Field> flds = cursor.GetFields();
                        foreach (var fld in flds)
                        {
                            _columns.Add(new ColumnData()
                            {
                                AliasName = fld.AliasName ?? fld.Name,
                                Name      = fld.Name,
                                FieldType = fld.FieldType
                            });
                        }

                        while (cursor.MoveNext())
                        {
                            var row = new DynamicDataRow();

                            for (int v = 0; v < flds.Count; v++)
                            {
                                row[GetName(flds[v])] = GetValue(cursor.Current, v);
                            }
                            data.Add(row);
                        }
                    }
                    return(0);
                });
            }
            finally {
                ExtendListView.Columns = _columns;
                _timer.Stop();

                lock (_theLock) {
                    _rows.Clear();
                    _rows = null;
                    _rows = data;
                }
                if (_rows.Count > 0)
                {
                    TableHasNoRows = "";
                }
                else
                {
                    TableHasNoRows = "No rows returned";
                }
                _executeQuery = false;
                OnPropertyChanged("Rows");
                OnPropertyChanged("IsExecutingQuery");
            }
        }
コード例 #12
0
    public static List <dynamic> ExecuteStoredProcedure(REPORTS _report, string _rawParams, Controller _controller)
    {
        List <dynamic> _dataRows = new List <dynamic>();

        try
        {
            using (SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["RBAC_Model"].ConnectionString))
            {
                using (var command = new SqlCommand(_report.StoredProcedureName, sqlConn)
                {
                    CommandType = CommandType.StoredProcedure
                })
                {
                    //Read parameters...
                    string[] _parameters = _rawParams.Split('\\');
                    foreach (string _param in _parameters)
                    {
                        try
                        {
                            string _paramName  = _param.Substring(0, _param.IndexOf('=')).Trim();
                            string _paramValue = _param.Substring(_param.IndexOf('=') + 1).Trim();

                            if (!string.IsNullOrEmpty(_paramValue))
                            {
                                dynamic _paramSqlValue = _paramValue;
                                switch (_report.PARAMETERS.Where(p => p.ParameterName == _paramName).FirstOrDefault().ParameterType.ToLower())
                                {
                                case "datetime":
                                    _paramSqlValue = FormatDate4SqlStoredProcedureParameter(DateTime.ParseExact(_paramValue, "MM/dd/yyyy", CultureInfo.InvariantCulture));
                                    break;

                                case "date":
                                    _paramSqlValue = FormatDate4SqlStoredProcedureParameter(DateTime.ParseExact(_paramValue, "MM/dd/yyyy", CultureInfo.InvariantCulture));
                                    break;

                                case "int":
                                    _paramSqlValue = int.Parse(_paramValue);
                                    break;

                                default:
                                    _paramSqlValue = _paramValue;
                                    break;
                                }
                                command.Parameters.Add(new SqlParameter(_paramName, _paramSqlValue));
                            }
                        }
                        catch (Exception ex)
                        {
                        }
                    }

                    sqlConn.Open();
                    SqlDataReader dbReader = command.ExecuteReader();

                    while (dbReader.Read())
                    {
                        DynamicDataRow _row = new DynamicDataRow();
                        for (int i = 0; i < dbReader.FieldCount; i++)
                        {
                            _row.AddColumn(dbReader.GetName(i), GetValue(dbReader, i), dbReader.GetDataTypeName(i).ToString());
                        }
                        _dataRows.Add(_row);
                    }
                    sqlConn.Close();
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        return(_dataRows);
    }
コード例 #13
0
        protected virtual DanhMucItemData Convert(DataRow row)
        {
            dynamic data = new DynamicDataRow(row);

            DanhMucItemData obj = new DanhMucItemData();

            obj.ID = System.Convert.ToInt32(data.ID);
            obj.MaLoaiDanhMuc = System.Convert.ToString(data.MaLoaiDanhMuc);
            obj.MaDanhMuc = System.Convert.ToString(data.MaDanhMuc);
            obj.TenDanhMuc = System.Convert.ToString(data.TenDanhMuc);
            obj.MoTa = System.Convert.ToString(data.MoTa);
            obj.ThuTu = System.Convert.ToInt32(data.ThuTu);
            obj.IntVal1 = System.Convert.ToInt32(data.IntVal1);
            obj.IntVal2 = System.Convert.ToInt32(data.IntVal2);
            obj.IntVal3 = System.Convert.ToInt32(data.IntVal3);
            obj.DecVal1 = System.Convert.ToDecimal(data.DecVal1);
            obj.DecVal2 = System.Convert.ToDecimal(data.DecVal2);
            obj.DecVal3 = System.Convert.ToDecimal(data.DecVal3);
            obj.StrVal1 = System.Convert.ToString(data.StrVal1);
            obj.StrVal2 = System.Convert.ToString(data.StrVal2);
            obj.StrVal3 = System.Convert.ToString(data.StrVal3);
            obj.Active = System.Convert.ToBoolean(data.Active);

            return obj;
        }
コード例 #14
0
        private async Task QueryRows(object query)
        {
            string where = "";
            if (query != null)
            {
                where = query.ToString();
            }
            IsLoading = true;
            lock (_theLock)
            {
                ListOfRows.Clear();
            }
            if (_layerSource == null)
            {
                _layerSource = await _selectedLayer.getFeatureClass();
            }
            if (_layerSource != null)
            {
                var data = new List <DynamicDataRow>();
                await QueuedTask.Run(() =>
                {
                    var queryFilter = new ArcGIS.Core.Data.QueryFilter
                    {
                        WhereClause = where
                    };
                    int maxcols = 6;

                    RowCursor cursor = null;

                    // Use try catch to catch invalid SQL statements in queryFilter
                    try
                    {
                        cursor = _layerSource.Search(queryFilter);
                    }
                    catch (GeodatabaseGeneralException gdbEx)
                    {
                        System.Windows.MessageBox.Show("Error searching data. " + gdbEx.Message, "Search Error",
                                                       System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Exclamation);
                        return;
                    }

                    if (cursor.MoveNext())
                    {
                        ExtendListView.Columns = new List <ArcGIS.Core.Data.Field>();
                        maxcols = cursor.Current.GetFields().Count() > 6 ? 6 : cursor.Current.GetFields().Count();

                        for (int c = 0; c < maxcols; c++)
                        {
                            ExtendListView.Columns.Add(cursor.Current.GetFields()[c]);
                        }
                        do
                        {
                            var row = new DynamicDataRow();
                            for (int v = 0; v < maxcols; v++)
                            {
                                if (cursor.Current[v] != null)
                                {
                                    row[GetName(cursor.GetFields()[v])] = cursor.Current[v].ToString();
                                }
                            }
                            data.Add(row);
                        } while (cursor.MoveNext());
                    }
                });

                lock (_theLock)
                {
                    ListOfRows = null;
                    ListOfRows = data;
                }
            }
            RaisePropertyChanged("ListOfRows");
            Status    = string.Format("{0} rows loaded", ListOfRows.Count());
            IsLoading = false;
        }
コード例 #15
0
        protected virtual DanhMucData Convert(DataRow row)
        {
            dynamic data = new DynamicDataRow(row);

            DanhMucData obj = new DanhMucData(); // Chú ý Int64 hoặc Int32 phụ thuộc vào kiểu - dễ lẫn chỗ này

            obj.MaLoaiDanhMuc = System.Convert.ToString(data.MaLoaiDanhMuc);
            obj.TenLoaiDanhMuc = System.Convert.ToString(data.TenLoaiDanhMuc);
            obj.ThuTu = System.Convert.ToInt32(data.ThuTu);
            obj.System = System.Convert.ToBoolean(data.System);

            return obj;
        }
コード例 #16
0
        protected virtual SysAccountData Convert(DataRow row)
        {
            dynamic data = new DynamicDataRow(row);

            SysAccountData obj = new SysAccountData();

            obj.ID = System.Convert.ToInt32(data.ID);
            obj.Username = System.Convert.ToString(data.Username);
            obj.Password = System.Convert.ToString(data.Password);
            obj.RealName = System.Convert.ToString(data.RealName);
            obj.Email = System.Convert.ToString(data.Email);
            obj.ID_DonVis = System.Convert.ToString(data.ID_DonVis);
            obj.LastAccess = data.LastAccess != null ? System.Convert.ToDateTime(data.LastAccess) : (DateTime?)null;
            obj.Active = System.Convert.ToBoolean(data.Active);
            obj.AccountType = System.Convert.ToByte(data.AccountType);
            obj.Creator_ID = System.Convert.ToInt32(data.Creator_ID);
            obj.ID_DonViGoc = System.Convert.ToInt32(data.ID_DonViGoc);
            obj.IsUpdate = System.Convert.ToBoolean(data.IsUpdate);

            return obj;
        }