示例#1
0
        private bool ReadTable()
        {
            operatorSQLAdapter  = new DamaiDataSetTableAdapters.OperatorTableAdapter();
            headerSQLAdapter    = new DamaiDataSetTableAdapters.VEHeaderTableAdapter();
            apartmentSQLAdapter = new DamaiDataSetTableAdapters.ApartmentTableAdapter();
            authListSQLAdapter  = new DamaiDataSetTableAdapters.OperatorAuthListTableAdapter();

            operatorSQLAdapter.Connection.ConnectionString  = DB.SqlConnectString(m_Cfg);
            apartmentSQLAdapter.Connection.ConnectionString = DB.SqlConnectString(m_Cfg);
            authListSQLAdapter.Connection.ConnectionString  = DB.SqlConnectString(m_Cfg);

            damaiDataSet = new DamaiDataSet();
            try
            {
                operatorSQLAdapter.Fill(damaiDataSet.Operator);
                headerSQLAdapter.Fill(damaiDataSet.VEHeader);
                apartmentSQLAdapter.Fill(damaiDataSet.Apartment);
                authListSQLAdapter.Fill(damaiDataSet.OperatorAuthList);
            }
            catch (Exception ex)
            {
                MessageBox.Show("操作員資料庫讀取錯誤<" + ex.Message + ">!  無法登入");
                return(false);
            }
            if (damaiDataSet.Operator.Rows.Count == 0)
            {
                MessageBox.Show("資料庫內沒有設定任何操作員,無法登入");
                Close();
                return(false);
            }
            if (damaiDataSet.Apartment.Rows.Count != 0)
            {
                string Key = "LordAlex";
                foreach (var a in damaiDataSet.Apartment)
                {
                    byte[] buf     = Encoder.RC2Decrypt(Convert.FromBase64String(a.DatabaseName.Trim()), Key);
                    string decoded = Encoding.Unicode.GetString(buf);
                    if (decoded == m_Cfg.Database.Trim())     // 不使用IsCurrent了
                    {
                        m_DefaultApartment = a;
                        break;
                    }
                }
                if (m_DefaultApartment == null)
                {
                    MessageBox.Show("部門資料庫內找不到<" + m_Cfg.Database + ">,設定有誤無法登入,請找IT帥哥!");
#if (DEBUG)
                    m_DefaultApartment = damaiDataSet.Apartment[9];
#else
                    Close();
                    return(false);
#endif
                }
            }

            DamaiDataSet.VEHeaderRow header = null;
            string sVersion = "";
            if (damaiDataSet.VEHeader.Count > 0)
            {
                header = damaiDataSet.VEHeader[0];
                if (!header.IsVersionNull())
                {
                    sVersion = header.Version.Trim();
                }
            }
            CheckAppVersion(sVersion);
            return(true);
        }
示例#2
0
        private void FormInitNewYear_Load(object sender, EventArgs e)
        {
            try
            {
                m_OrderSet = m_DataSet;
                var veHeaderAdapter = new DamaiDataSetTableAdapters.VEHeaderTableAdapter();
                veHeaderAdapter.Fill(m_DataSet.VEHeader);
            }
            catch
            {
                MessageBox.Show("標頭資料讀取錯誤,你的資料庫版本可能不對");
                Close();
                return;
            }
            string path = Application.ExecutablePath;
            int    len  = path.Length;

            if (path[len - 1] == '\\')
            {
                path = path.Substring(0, len - 1);                                 // 去掉最後面的 \
            }
            len = path.LastIndexOf('\\');
            if (len > 0)
            {
                path = path.Substring(0, len);                                     // 取路
            }
            DateTime dt = DateTime.Now;

            int count = m_DataSet.VEHeader.Rows.Count;

            if (count != 0)
            {
                var row = (DamaiDataSet.VEHeaderRow)m_DataSet.VEHeader.Rows[count - 1]; // 沒指定用最後一個
                dt = row.DataYear;
            }
            m_Year   = dt.Year + 1;
            NewSqlDB = m_HCfg.Database;
            int n = NewSqlDB.Length - 1;

            for (; n > 0; n--)
            {
                if (!char.IsDigit(NewSqlDB[n]))
                {
                    break;
                }
            }
            NewSqlDB       = NewSqlDB.Substring(0, n + 1) + m_Year.ToString();
            labelYear.Text = "原資料年是 " + dt.Year.ToString() + " 將啟始" + m_Year.ToString() + "年資料";
            labelNote.Text = "新年度資料將被放在資料庫[" + NewSqlDB + "] 設定檔HardwareCfg.xml放置於" + System.Net.Dns.GetHostName() + "的";
            m_Dir          = path + "\\Manage" + m_Year.ToString();
            labelPath.Text = m_Dir;
            // SQL Server只要一個Table
            chListBoxBasic.Visible = false;
            List <string> list2 = GetTableName(m_DataSet);

            foreach (string s in list2)
            {
                if (s == "Header")
                {
                    continue;                     // Header要特殊處理
                }
                if (s == "VEHeader")
                {
                    continue;                     // VEHeader要特殊處理
                }
                if (ReservedTable.Contains(s))
                {
                    chListBoxVE.Items.Add(s, true);
                }
                else
                {
                    chListBoxVE.Items.Add(s, false);
                }
            }
        }