public void LoadData()
        {
            if (m_Table == null)
            {
                return;
            }
            dataGridView.Rows.Clear();
            List <CBaseObject> lstObj = m_Table.DataServerMgr.GetList();

            if (lstObj.Count == 0)
            {
                string connStr = Program.Ctx.ConnectionString.ToLower();
                int    idx1    = connStr.IndexOf("password="******"password="******";", idx1);
                string sPwd    = (idx2 == -1) ? connStr.Substring(idx1) : connStr.Substring(idx1, idx2 - idx1);
                idx1 = connStr.IndexOf("user id=") + "user id=".Length;
                idx2 = connStr.IndexOf(";", idx1);
                string sUid = (idx2 == -1) ? connStr.Substring(idx1) : connStr.Substring(idx1, idx2 - idx1);
                idx1 = connStr.IndexOf("initial catalog=") + "initial catalog=".Length;
                idx2 = connStr.IndexOf(";", idx1);
                string sDbName = (idx2 == -1) ? connStr.Substring(idx1) : connStr.Substring(idx1, idx2 - idx1);
                idx1 = connStr.IndexOf("data source=") + "data source=".Length;
                idx2 = connStr.IndexOf(";", idx1);
                string sServer = (idx2 == -1) ? connStr.Substring(idx1) : connStr.Substring(idx1, idx2 - idx1);

                CDataServer DataServer = new CDataServer();
                DataServer.Server      = sServer;
                DataServer.DBName      = sDbName;
                DataServer.UserID      = sUid;
                DataServer.Pwd         = sPwd;
                DataServer.FW_Table_id = m_Table.Id;
                DataServer.IsWrite     = true;

                m_Table.DataServerMgr.AddNew(DataServer);
                lstObj = m_Table.DataServerMgr.GetList();
            }

            dataGridView.Rows.Add(lstObj.Count);
            int nRowIdx = 0;

            foreach (CBaseObject obj in lstObj)
            {
                CDataServer DataServer = (CDataServer)obj;

                DataGridViewRow row = dataGridView.Rows[nRowIdx];
                row.Tag            = obj;
                row.Cells[0].Value = DataServer.Server;
                row.Cells[1].Value = DataServer.DBName;
                row.Cells[2].Value = DataServer.UserID;
                row.Cells[3].Value = DataServer.Pwd;
                DataGridViewCheckBoxCell ckCell = (DataGridViewCheckBoxCell)row.Cells[4];
                ckCell.Value = DataServer.IsWrite;

                nRowIdx++;
            }
        }
        private void tbtDel_Click(object sender, EventArgs e)
        {
            if (dataGridView.CurrentRow == null)
            {
                MessageBox.Show("请选择一项!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            CDataServer DataServer = (CDataServer)dataGridView.CurrentRow.Tag;

            m_Table.DataServerMgr.Delete(DataServer, true);

            dataGridView.Rows.Remove(dataGridView.CurrentRow);
        }
        private void tbtEdit_Click(object sender, EventArgs e)
        {
            if (dataGridView.CurrentRow == null)
            {
                MessageBox.Show("请选择一项!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            CDataServer DataServer = (CDataServer)dataGridView.CurrentRow.Tag;

            DataServerInfoForm frm = new DataServerInfoForm();

            frm.m_DataServer    = DataServer;
            frm.m_DataServerMgr = m_Table.DataServerMgr;
            if (frm.ShowDialog() != DialogResult.OK)
            {
                m_Table.DataServerMgr.Cancel();
                return;
            }
            LoadData();
        }
        private void btOK_Click(object sender, EventArgs e)
        {
            if (txtServer.Text.Trim() == "")
            {
                MessageBox.Show("服务器不能空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (txtDBName.Text.Trim() == "")
            {
                MessageBox.Show("数据库名不能空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (txtUserID.Text.Trim() == "")
            {
                MessageBox.Show("登录帐号不能空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            if (txtPwd.Text.Trim() == "")
            {
                MessageBox.Show("登录密码不能空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            if (!TestConnect())
            {
                return;
            }

            if (m_DataServer == null)
            {
                List <CBaseObject> lstObj = m_DataServerMgr.GetList();
                foreach (CBaseObject obj in lstObj)
                {
                    CDataServer dserver = (CDataServer)obj;
                    if (dserver.Server.Equals(txtServer.Text.Trim(), StringComparison.OrdinalIgnoreCase) &&
                        dserver.DBName.Equals(txtDBName.Text.Trim(), StringComparison.OrdinalIgnoreCase))
                    {
                        MessageBox.Show("服务器已经存在!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        return;
                    }
                }
                m_DataServer             = new CDataServer();
                m_DataServer.Server      = txtServer.Text.Trim();
                m_DataServer.DBName      = txtDBName.Text.Trim();
                m_DataServer.UserID      = txtUserID.Text.Trim();
                m_DataServer.Pwd         = txtPwd.Text.Trim();
                m_DataServer.IsWrite     = ckIsWrite.Checked;
                m_DataServer.FW_Table_id = m_DataServerMgr.m_Parent.Id;


                m_DataServerMgr.AddNew(m_DataServer);
            }
            else
            {
                List <CBaseObject> lstObj = m_DataServerMgr.GetList();
                foreach (CBaseObject obj in lstObj)
                {
                    CDataServer dserver = (CDataServer)obj;
                    if (dserver.Server.Equals(txtServer.Text.Trim(), StringComparison.OrdinalIgnoreCase) &&
                        dserver.DBName.Equals(txtDBName.Text.Trim(), StringComparison.OrdinalIgnoreCase) &&
                        m_DataServer != dserver)
                    {
                        MessageBox.Show("服务器已经存在!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        return;
                    }
                }
                m_DataServer.Server  = txtServer.Text.Trim();
                m_DataServer.DBName  = txtDBName.Text.Trim();
                m_DataServer.UserID  = txtUserID.Text.Trim();
                m_DataServer.Pwd     = txtPwd.Text.Trim();
                m_DataServer.IsWrite = ckIsWrite.Checked;

                m_DataServerMgr.Update(m_DataServer);
            }
            this.DialogResult = DialogResult.OK;
        }