Пример #1
0
        private void LoadMessage(DateTime?begin_date, DateTime?end_date)
        {
            var appSettings = System.Configuration.ConfigurationManager.AppSettings;

            if (!isLastLoaded)
            {
                AppName       = AppConstants.App_Name;
                AppName_ID    = AppConstants.App_Name_ID;
                LastMessageID = Convert.ToDecimal(appSettings[AppName + "Message_ID"]);
            }
            _ds.Tables["MESSAGE"].Rows.Clear();
            _daMessage.SelectCommand.Parameters["p_APP_NAME_ID"].Value = AppName_ID;
            _daMessage.SelectCommand.Parameters["p_MESSAGE_ID"].Value  = LastMessageID;
            _daMessage.SelectCommand.Parameters["p_begin_date"].Value  = begin_date;
            _daMessage.SelectCommand.Parameters["p_end_date"].Value    = end_date;
            _daMessage.Fill(_ds.Tables["MESSAGE"]);
            object last_value = _ds.Tables["MESSAGE"].Compute("MAX(MESSAGE_ID)", "");

            if (last_value != null && last_value != DBNull.Value && Convert.ToDecimal(last_value) > LastMessageID)
            {
                appSettings[AppName + "Message_ID"] = last_value.ToString();
                //appSettings.Save();
                LastMessageID = Convert.ToDecimal(last_value);
                _isHidded     = false;// значит есть новые сообщения - при первом запуске у нас покажется список
            }
            isLastLoaded = true;
        }
Пример #2
0
 /// <summary>
 /// Асинхронно выполняет загрузку данных и при ошибках показывает сообщение, иначе если все успешно прошло, выполняет делегат
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="caption"></param>
 /// <param name="argument"></param>
 /// <param name="execCommand"></param>
 /// <param name="workSuccessEnded"></param>
 public static void RunAsyncWithWaitDialog(DependencyObject sender, string caption, object argument, UniDbCommand execCommand, RunWorkerCompletedEventHandler workSuccessEnded)
 {
     AbortableBackgroundWorker.RunAsyncWithWaitDialog(sender, caption,
                                                      (p, pw) =>
     {
         UniDbAdapter a = pw.Argument as UniDbAdapter;
         DataSet ds     = new DataSet();
         a.Fill(ds);
         pw.Result = ds;
     }, argument, execCommand,
                                                      (p, pw) =>
     {
         if (pw.Cancelled)
         {
             return;
         }
         else if (pw.Error != null)
         {
             MessageBox.Show(pw.Error.GetFormattedException(), "Ошибка получения данных");
         }
         else
         {
             workSuccessEnded(p, pw);
         }
     });
 }
Пример #3
0
        /// <summary>
        /// Создание структуры таблицы по имени таблицы в БД
        /// </summary>
        /// <param name="tableName"></param>
        /// <returns></returns>
        public static DataTable CreateTable(string tableName, string schemaTable = null)
        {
            if (string.IsNullOrWhiteSpace(tableName))
            {
                throw new Exception("Ошибка получения схемы. Не задано имя таблицы");
            }
            UniSchemaTable st = GetTable(tableName);

            if (st != null)
            {
                DataTable table = new DataTable(tableName);
                foreach (var item in st.Columns)
                {
                    table.Columns.Add(item.DbColumnName, item.ColumnType);
                }
                table.DisplayExpression = st.TableComment;
                return(table);
            }
            else
            {
                DataTable    t   = new DataTable(tableName);
                UniDbAdapter oda = new UniDbAdapter(UniDbCommand.GetSelectCommand(tableName, schemaTable, "1=2"));
                oda.Fill(t);
                return(t);
            }
        }
Пример #4
0
        public TestGridView()
        {
            InitializeComponent();
            DataSet      _ds = new DataSet();
            UniDbAdapter _da = new UniDbAdapter("SELECT PER_NUM FROM APSTAFF.EMP", UniDbConnection.Current);

            _da.Fill(_ds, "EMP");
            dgEmp.DataContext = _ds.Tables["EMP"].DefaultView;
        }