📄 ucstatclass.cs.svn-base
字号:
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 dist.hb.EnvQueryStat.Pub;
namespace dist.hb.EnvQueryStat.StatSet
{
public partial class ucStatClass : UserControl
{
public ucStatClass()
{
InitializeComponent();
}
System.Data.OleDb.OleDbDataAdapter m_currentDbDataAdapter;
System.Data.DataSet m_currentDataSet;
System.Data.DataTable m_currentTable;
OleDbCommandBuilder m_custCB;
string m_strTbl = "FS_StatInstClass";
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 BindTable()
{
DataSet ds = new DataSet();
string strSQL;
strSQL = "SELECT StatClassID,PStatClassID,StatClassName FROM "+ m_strTbl;
m_currentDbDataAdapter = new System.Data.OleDb.OleDbDataAdapter(strSQL, m_OleDbConn);
m_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);
m_currentTable = ds.Tables[m_strTbl];
//增加主键
DataColumn[] keys = new DataColumn[1];
keys[0] = m_currentTable.Columns[0];
m_currentTable.PrimaryKey = keys;
m_currentDataSet = ds;
}
private void AddNewRow(string strQueryClassID,string strPQueryClassID,string strQueryClassName)
{
DataRow row;
row = m_currentTable.NewRow();
row["StatClassID"] = Convert.ToInt32(strQueryClassID);
if (strPQueryClassID != "") row["PStatClassID"] = Convert.ToInt32(strPQueryClassID);
row["StatClassName"] = strQueryClassName;
m_currentTable.Rows.Add(row);
}
private void DeleteRow(string strQueryClassID)
{
DataRowCollection drc = m_currentTable.Rows;
if (drc == null) return;
DataRow dr = drc.Find(strQueryClassID);
dr.Delete();
//if (dr == null) return;
//drc.Remove(dr);
}
private void ModifyRow(string strQueryClassID, string strQueryClassName)
{
DataRowCollection drc = m_currentTable.Rows;
if (drc == null) return;
DataRow dr = drc.Find(strQueryClassID);
if (dr == null) return;
dr["StatClassName"] = strQueryClassName;
}
//取最大值
private int GetMaxVTID()
{
DataTable tbl;
tbl = m_currentDataSet.Tables[m_strTbl];
if (tbl == null) return 0;
string strTemp = tbl.Compute("MAX(StatClassID)", "").ToString();
if (strTemp == "") return 1;
else return 1 + Convert.ToInt32(strTemp);
}
private void barButtonItem_New_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
frmInputBox InputBox = new frmInputBox();
InputBox.ShowDialog() ;
TreeNode nd = treeView1.SelectedNode;
AddNode(nd, InputBox.InputText, GetMaxVTID().ToString());
//
string strPQueryClassID = "";
if (nd != null) strPQueryClassID = nd.Name;
AddNewRow(GetMaxVTID().ToString(), strPQueryClassID, InputBox.InputText);//增加到数据库
//MessageBox.Show(InputBox.InputText);
}
private void barButtonItem_modify_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
TreeNode nd = treeView1.SelectedNode;
if (nd == null) return;
frmInputBox InputBox = new frmInputBox();
InputBox.InputText = nd.Text;
InputBox.ShowDialog();
if (InputBox.InputText != "") nd.Text = InputBox.InputText;
ModifyRow(nd.Name, nd.Text);
}
private void barButtonItem_delete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
TreeNode nd = treeView1.SelectedNode;
if (nd == null) return;
treeView1.Nodes.Remove(nd);
DeleteRow(nd.Name);
}
private void ucQueryClass_Load(object sender, EventArgs e)
{
BindTable();
FillTree();
treeView1.ExpandAll();
}
private void FillTree()
{
if (m_currentTable == null) return;
DataRow[] drs = m_currentTable.Select("PStatClassID is null");
if (drs == null) return;
FillTree(drs, null);
}
private void FillTree(DataRow[] drs, TreeNode pNode)
{
if (drs == null) return;
if (drs.Length <= 0) return;
foreach (DataRow row in drs)
{
//QueryClassID,PQueryClassID,QueryClassName
TreeNode nd = AddNode(pNode, row["StatClassName"].ToString(), row["StatClassID"].ToString());
DataRow[] NEWdrs = m_currentTable.Select("PStatClassID ="+row["StatClassID"]);
FillTree(NEWdrs, nd);
}
}
private TreeNode AddNode(TreeNode pNode, string strTxt, string strKey)
{
if (pNode == null)
{
TreeNode pNode1 = treeView1.Nodes.Add(strKey, strTxt);//增加根节点
return pNode1;
}
else
{
return pNode.Nodes.Add(strKey, strTxt);
}
}
private void ucQueryClass_Leave(object sender, EventArgs e)
{
try
{
m_currentDbDataAdapter.Update(m_currentDataSet, m_strTbl);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示");
}
}
private void ucQueryClass_VisibleChanged(object sender, EventArgs e)
{
}
private void ucQueryClass_ControlRemoved(object sender, ControlEventArgs e)
{
}
private void barButtonItem1_save_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
try
{
//m_custCB.RefreshSchema();
m_currentDbDataAdapter.Update(m_currentDataSet, m_strTbl);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示");
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -