ucabstractquery.cs

来自「以构建的方式来实现对通用的查询统计」· CS 代码 · 共 127 行

CS
127
字号
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;


namespace dist.hb.EnvQueryStat.QuerySet
{
  public partial class ucAbstractQuery : UserControl
  {
    public ucAbstractQuery()
    {
      InitializeComponent();
    }

    System.Data.OleDb.OleDbDataAdapter m_currentDbDataAdapter;
    System.Data.DataSet m_currentDataSet;
    string m_strTbl = "FS_AbstractQuery";
    private OleDbConnection m_OleDbConn;

    public OleDbConnection OleDbConn
    {
      get { return m_OleDbConn; }
      set
      {
        if (value == null) return;
        if (value == m_OleDbConn) return;
        m_OleDbConn = value;
      }
    }

    private void gridControl1_EmbeddedNavigator_ButtonClick(object sender, DevExpress.XtraEditors.NavigatorButtonClickEventArgs e)
    {
      //MessageBox.Show("测试", "提示");
      if (e.Button.ButtonType.ToString() != "Remove") return;
      DevExpress.XtraGrid.GridControlNavigator Nav = (DevExpress.XtraGrid.GridControlNavigator)sender;
      int iPos = Nav.NavigatableControl.Position;
      if (iPos < 0) return;
      DataTable db = m_currentDataSet.Tables[m_strTbl];
      iPos = (int)db.Rows[iPos].ItemArray[0];
      DeleteVTB(iPos);
    }

    private void DeleteVTB(long nID)
    {
      string strSQL;
      strSQL = "DELETE  FROM " + m_strTbl + " WHERE AbstractQueryID =" + nID.ToString();
      OleDbCommand command = new OleDbCommand(strSQL, m_OleDbConn);
      command.ExecuteNonQuery();
      command.Dispose();
    }

    private void InitLookUp()
    {
      DataSet ds = new DataSet();
      string strSQL;
      strSQL = "SELECT VTID,VTName FROM FS_VTable";
      OleDbDataAdapter Adapter = new System.Data.OleDb.OleDbDataAdapter(strSQL, m_OleDbConn);

      Adapter.Fill(ds, "FS_VTable");
      repositoryItemLookUpEdit1.DataSource = ds.Tables["FS_VTable"];
      repositoryItemLookUpEdit1.DisplayMember = "VTName";
      repositoryItemLookUpEdit1.ValueMember = "VTID";
    }

      
    //取最大值
    private int GetMaxID()
    {
      DataTable tbl;
      tbl = m_currentDataSet.Tables[m_strTbl];
      if (tbl == null) return 0;
      string strTemp = tbl.Compute("MAX(AbstractQueryID)", "").ToString();
      if (strTemp == "") return 1;
      else return 1 + Convert.ToInt32(strTemp);
    }

    private void BindTbl()
    {
      DataSet ds = new DataSet();
      string strSQL;
      strSQL = "SELECT AbstractQueryID,VTID,AbstractQueryName,AttField,LayerName,SpaceField,remark FROM " + m_strTbl;
      m_currentDbDataAdapter = new System.Data.OleDb.OleDbDataAdapter(strSQL, m_OleDbConn);

      OleDbCommandBuilder custCB = new OleDbCommandBuilder(m_currentDbDataAdapter);
      OleDbCommand cmd = new OleDbCommand();

      cmd.Connection = m_OleDbConn;
      //cmd.Transaction = m_tran;
      cmd.CommandType = CommandType.Text;
      cmd.CommandText = strSQL;
      m_currentDbDataAdapter.SelectCommand = cmd;

      m_currentDbDataAdapter.Fill(ds, m_strTbl);
      gridControl1.DataSource = null;
      gridControl1.DataSource = ds.Tables[m_strTbl];
      m_currentDataSet = null;
      m_currentDataSet = ds;
    }

    private void ucAbstractQuery_Load(object sender, EventArgs e)
    {
      InitLookUp();
      BindTbl();
    }

    private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
    {
      DataRow row = gridView1.GetDataRow(e.RowHandle);
      row["AbstractQueryID"] = GetMaxID();
    }

    private void gridView1_RowUpdated(object sender, DevExpress.XtraGrid.Views.Base.RowObjectEventArgs e)
    {
      System.Data.DataRowView dv = (DataRowView)e.Row;
      if (dv == null) return;
      DataRow[] rows = new DataRow[] { dv.Row };
      m_currentDbDataAdapter.Update(rows);
      //MessageBox.Show("测试", "提示");
    }
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?