ucabstractqueryfield.cs.svn-base
来自「以构建的方式来实现对通用的查询统计」· SVN-BASE 代码 · 共 204 行
SVN-BASE
204 行
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;
using DevExpress.XtraEditors.Repository;
namespace dist.hb.EnvQueryStat.QuerySet
{
public partial class ucAbstractQueryField : UserControl
{
System.Data.OleDb.OleDbDataAdapter m_currentDbDataAdapter;
System.Data.DataSet m_currentDataSet;
string m_strTbl = "FS_QuerySet";
int m_nAbstractQueryID = -1;
int m_nVTid = -1;
private OleDbConnection m_OleDbConn;
public OleDbConnection OleDbConn
{
get { return m_OleDbConn; }
set
{
if (value == null) return;
if (value == m_OleDbConn) return;
m_OleDbConn = value;
}
}
public ucAbstractQueryField()
{
InitializeComponent();
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
}
private void btnInit_Click(object sender, EventArgs e)
{
//删除旧的记录
DeleteOldTblContent(m_nAbstractQueryID);
BindField(m_nAbstractQueryID);//重新绑定
//重新填充
DataTable tbl;
tbl = m_currentDataSet.Tables[m_strTbl];
if (tbl == null) return;
AutoFillTbl(ref tbl, m_nVTid, m_nAbstractQueryID);
}
//提取抽象查询的字段
private void AutoFillTbl(ref DataTable tbl, int nVTid, int nID)
{
DataTable dt = GetVTField(nVTid);
if (dt == null) return;
for (int i = 0; i < dt.Rows.Count; i++)
{
int nVTField = (int)dt.Rows[i].ItemArray[0];
// AbstractQueryID,VFieldID,IsShow,IsFilter,IsOrder,IsMainField FROM FS_QuerySet
tbl.Rows.Add(new object[] { nID, nVTField, false, false, false, false,false });
}
}
private DataTable GetVTField(int nVTID)
{
DataSet ds = new DataSet();
string strSQL;
OleDbDataAdapter adapter;
strSQL = "SELECT VFieldID FROM FS_VTFieldDes WHERE VTID =" + nVTID.ToString();
adapter = new System.Data.OleDb.OleDbDataAdapter(strSQL, m_OleDbConn);
adapter.Fill(ds, "FS_VTFieldDes");
return ds.Tables["FS_VTFieldDes"];
}
private string GetTypeName(int iType)
{
string typeName = Enum.GetName(typeof(OleDbType), iType);
if (typeName.Contains("Char")) return "字符";
else if (typeName.Contains("Double")) return "浮点";
else if (typeName.Contains("Integer")) return "整形";
else if (typeName.Contains("Time")) return "日期";
else return "字符";
}
private void DeleteOldTblContent(int 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 ucAbstractQueryField_Load(object sender, EventArgs e)
{
InitLookUp();
RepositoryItemLookUpEdit lookUpProperties;
lookUpProperties = lookUpEdit1.Properties;
lookUpProperties.ShowLines = true;
InitLookupData();
}
private void BindField(int nID)
{
DataSet ds = new DataSet();
string strSQL;
strSQL = "SELECT AbstractQueryID,VFieldID,IsShow,IsFilter,IsOrder,IsMainField,IsUserVisible FROM FS_QuerySet WHERE AbstractQueryID =" + nID.ToString();
m_currentDbDataAdapter = new System.Data.OleDb.OleDbDataAdapter(strSQL, m_OleDbConn);
string strFillTbl = "FS_QuerySet";
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, strFillTbl);
gridControl1.DataSource = ds.Tables[strFillTbl];
m_currentDataSet = ds;
}
private void btnSave_Click(object sender, EventArgs e)
{
try
{
m_currentDbDataAdapter.Update(m_currentDataSet, m_strTbl);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示");
}
}
//初始化虚表数据
private void InitLookupData()
{
DataSet ds = new DataSet();
System.Data.OleDb.OleDbDataAdapter dbAdapter = new System.Data.OleDb.OleDbDataAdapter(
"SELECT AbstractQueryName,AbstractQueryID, VTID FROM FS_AbstractQuery", m_OleDbConn);
dbAdapter.Fill(ds, "FS_AbstractQuery");
DataViewManager dvm = new DataViewManager(ds);
DataView dvLookup;
dvLookup = dvm.CreateDataView(ds.Tables["FS_AbstractQuery"]);
// <lookUpEdit1>
//lookUpEdit1.DataBindings.Add("EditValue", dvLookup, "VTID");
lookUpEdit1.Properties.DataSource = dvLookup;
lookUpEdit1.Properties.DisplayMember = "AbstractQueryName";
lookUpEdit1.Properties.ValueMember = "AbstractQueryID";
// </lookUpEdit1>
}
private void lookUpEdit1_Properties_EditValueChanged(object sender, EventArgs e)
{
if (lookUpEdit1.GetColumnValue("AbstractQueryName") == null) return;
if (lookUpEdit1.GetColumnValue("AbstractQueryID") == null) return;
if (lookUpEdit1.GetColumnValue("VTID") == null) return;
m_nAbstractQueryID = (int)lookUpEdit1.GetColumnValue("AbstractQueryID");
m_nVTid = (int)lookUpEdit1.GetColumnValue("VTID");
BindField(m_nAbstractQueryID);
//MessageBox.Show("测试","消息"); }
}
private void btnDelete_Click(object sender, EventArgs e)
{
//删除旧的记录
DeleteOldTblContent(m_nAbstractQueryID);
BindField(m_nAbstractQueryID);//重新绑定
}
//对GRID中的lookup进行初始化
private void InitLookUp()
{
DataSet ds = new DataSet();
string strSQL;
strSQL = "SELECT VFieldID,FieldAias FROM FS_VTFieldDes";
OleDbDataAdapter Adapter = new System.Data.OleDb.OleDbDataAdapter(strSQL, m_OleDbConn);
Adapter.Fill(ds, "FS_VTFieldDes");
DataTable dt = ds.Tables["FS_VTFieldDes"];
repositoryItemLookUpEdit1.DataSource = dt;
repositoryItemLookUpEdit1.DisplayMember = "FieldAias";
repositoryItemLookUpEdit1.ValueMember = "VFieldID";
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?