程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#中TreeView類操作全攻略(二)

C#中TreeView類操作全攻略(二)

編輯:關於C語言
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using com.prm.clIEnt.tools;
using System.Data.OracleClIEnt;
//using com.prm.clIEnt.common;

namespace com.prm.clIEnt.forms
{
/// <summary>
/// SM_AddNewFunction 的摘要說明。
/// </summary>
public class SM_AddNewFunction: System.Windows.Forms.Form
{
private System.Windows.Forms.Label lbl_Name;
private System.Windows.Forms.TextBox txt_Name;
private System.Windows.Forms.Label lbl_Tag;
private System.Windows.Forms.TextBox txt_Tag;
private System.Windows.Forms.CheckBox ckb_IsInterface;
private System.Windows.Forms.Label lbl_IsInterface;
private System.Windows.Forms.Label lbl_Type;
private System.Windows.Forms.Label lbl_FunEntity;
private System.Windows.Forms.ComboBox cbo_Type;
private System.Windows.Forms.TextBox txt_FunEntity;
private System.Windows.Forms.Label lbl_BelongTo;
private System.Windows.Forms.TextBox txt_BelongTo;
private System.Windows.Forms.TextBox txt_Detail;
private System.Windows.Forms.Label lbl_Detail;
private System.Windows.Forms.Button btn_Confirm;
private System.Windows.Forms.Button btn_Cancel;
private System.Windows.Forms.Button btn_Help;


//用來保存數字字典功能類別的數據
ClIEntDictionary[] DIC_funcType;
//用來保存Connection屬性
private OracleConnection funcTableConn;
//用來保存新增加的記錄的主鍵(功能ID)
private long newFuncID;
//只讀屬性,用來讀取新增加的記錄的主鍵(功能ID)
//public long NewFuncID {get {return newFuncID;}}
//用來保存新增加的功能記錄
private FunctionTable newFuncItem;
public FunctionTable NewFuncItem {get {return newFuncItem;}}

/// <summary>
/// 必需的設計器變量。
/// </summary>
private System.ComponentModel.Container components = null;

/// <summary>
/// 構造函數,通過參數dic_funcType對窗口進行初始化值,通過參數fatherID得到
/// 新增加的功能的上級功能ID
/// </summary>
public SM_AddNewFunction(long fatherID,ClIEntDictionary[] dic_funcType)
{
//
// Windows 窗體設計器支持所必需的
//
InitializeComponent();
newFuncItem=new FunctionTable();
newFuncItem.funcFatherID=fatherID;
//初始化ID為-1,如果新增成功則將重新賦值
newFuncItem.funcID=-1;
DIC_funcType=dic_funcType;
const string VALUEMEMBER="valueMember",DISPLAYMEMBER="displayMember",NULLTEXT="";
cbo_Type.DataSource = DIC_funcType;
cbo_Type.ValueMember = VALUEMEMBER;
cbo_Type.DisplayMember = DISPLAYMEMBER;

DataAccessObject funcTableAccessObject=new DataAccessObject();
funcTableConn=funcTableAccessObject.Connection;
}

/// <summary>
/// 清理所有正在使用的資源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows 窗體設計器生成的代碼
/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內容。
/// </summary>
private void InitializeComponent()
{
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(SM_AddNewFunction));
this.lbl_Name = new System.Windows.Forms.Label();
this.lbl_Tag = new System.Windows.Forms.Label();
this.lbl_Type = new System.Windows.Forms.Label();
this.lbl_FunEntity = new System.Windows.Forms.Label();
this.lbl_BelongTo = new System.Windows.Forms.Label();
this.txt_Name = new System.Windows.Forms.TextBox();
this.txt_Tag = new System.Windows.Forms.TextBox();
this.cbo_Type = new System.Windows.Forms.ComboBox();
this.txt_BelongTo = new System.Windows.Forms.TextBox();
this.txt_Detail = new System.Windows.Forms.TextBox();
this.lbl_Detail = new System.Windows.Forms.Label();
this.ckb_IsInterface = new System.Windows.Forms.CheckBox();
this.btn_Confirm = new System.Windows.Forms.Button();
this.btn_Cancel = new System.Windows.Forms.Button();
this.btn_Help = new System.Windows.Forms.Button();
this.lbl_IsInterface = new System.Windows.Forms.Label();
this.txt_FunEntity = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// lbl_Name
//
this.lbl_Name.Location = new System.Drawing.Point(56, 24);
this.lbl_Name.Name = "lbl_Name";
this.lbl_Name.Size = new System.Drawing.Size(48, 23);
this.lbl_Name.TabIndex = 0;
this.lbl_Name.Text = "名稱:";
//
// lbl_Tag
//
this.lbl_Tag.Location = new System.Drawing.Point(56, 56);
this.lbl_Tag.Name = "lbl_Tag";
this.lbl_Tag.Size = new System.Drawing.Size(48, 23);
this.lbl_Tag.TabIndex = 1;
this.lbl_Tag.Text = "標識:";
//
// lbl_Type
//
this.lbl_Type.Location = new System.Drawing.Point(56, 112);
this.lbl_Type.Name = "lbl_Type";
this.lbl_Type.Size = new System.Drawing.Size(48, 23);
this.lbl_Type.TabIndex = 2;
this.lbl_Type.Text = "類別:";
//
// lbl_FunEntity
//
this.lbl_FunEntity.Location = new System.Drawing.Point(32, 144);
this.lbl_FunEntity.Name = "lbl_FunEntity";
this.lbl_FunEntity.Size = new System.Drawing.Size(72, 23);
this.lbl_FunEntity.TabIndex = 3;
this.lbl_FunEntity.Text = " 功能體:";
//
// lbl_BelongTo
//
this.lbl_BelongTo.Location = new System.Drawing.Point(8, 176);
this.lbl_BelongTo.Name = "lbl_BelongTo";
this.lbl_BelongTo.Size = new System.Drawing.Size(96, 23);
this.lbl_BelongTo.TabIndex = 4;
this.lbl_BelongTo.Text = "所屬窗口標識:";
//
// txt_Name
//
this.txt_Name.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.txt_Name.Location = new System.Drawing.Point(104, 16);
this.txt_Name.Name = "txt_Name";
this.txt_Name.Size = new System.Drawing.Size(152, 21);
this.txt_Name.TabIndex = 5;
this.txt_Name.Text = "";
//
// txt_Tag
//
this.txt_Tag.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.txt_Tag.Location = new System.Drawing.Point(104, 48);
this.txt_Tag.Name = "txt_Tag";
this.txt_Tag.Size = new System.Drawing.Size(152, 21);
this.txt_Tag.TabIndex = 6;
this.txt_Tag.Text = "";
//
// cbo_Type
//
this.cbo_Type.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbo_Type.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.cbo_Type.Location = new System.Drawing.Point(104, 104);
this.cbo_Type.Name = "cbo_Type";
this.cbo_Type.Size = new System.Drawing.Size(152, 20);
this.cbo_Type.TabIndex = 7;
//
// txt_BelongTo
//
this.txt_BelongTo.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.txt_BelongTo.Location = new System.Drawing.Point(104, 168);
this.txt_BelongTo.Name = "txt_BelongTo";
this.txt_BelongTo.Size = new System.Drawing.Size(152, 21);
this.txt_BelongTo.TabIndex = 8;
this.txt_BelongTo.Text = "";
//
// txt_Detail
//
this.txt_Detail.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.txt_Detail.Location = new System.Drawing.Point(104, 200);
this.txt_Detail.Name = "txt_Detail";
this.txt_Detail.Size = new System.Drawing.Size(152, 21);
this.txt_Detail.TabIndex = 9;
this.txt_Detail.Text = "";
//
// lbl_Detail
//
this.lbl_Detail.Location = new System.Drawing.Point(56, 208);
this.lbl_Detail.Name = "lbl_Detail";
this.lbl_Detail.Size = new System.Drawing.Size(48, 23);
this.lbl_Detail.TabIndex = 10;
this.lbl_Detail.Text = "描述:";
//
// ckb_IsInterface
//
this.ckb_IsInterface.Location = new System.Drawing.Point(104, 72);
this.ckb_IsInterface.Name = "ckb_IsInterface";
this.ckb_IsInterface.Size = new System.Drawing.Size(24, 24);
this.ckb_IsInterface.TabIndex = 11;
//
// btn_Confirm
//
this.btn_Confirm.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btn_Confirm.BackgroundImage")));
this.btn_Confirm.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.btn_Confirm.Location = new System.Drawing.Point(40, 240);
this.btn_Confirm.Name = "btn_Confirm";
this.btn_Confirm.Size = new System.Drawing.Size(64, 22);
this.btn_Confirm.TabIndex = 12;
this.btn_Confirm.Text = "確 定";
this.btn_Confirm.Click += new System.EventHandler(this.btn_Confirm_Click);
//
// btn_Cancel
//
this.btn_Cancel.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btn_Cancel.BackgroundImage")));
this.btn_Cancel.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.btn_Cancel.Location = new System.Drawing.Point(128, 240);
this.btn_Cancel.Name = "btn_Cancel";
this.btn_Cancel.Size = new System.Drawing.Size(64, 22);
this.btn_Cancel.TabIndex = 13;
this.btn_Cancel.Text = "取 消";
this.btn_Cancel.Click += new System.EventHandler(this.btn_Cancel_Click);
//
// btn_Help
//
this.btn_Help.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btn_Help.BackgroundImage")));
this.btn_Help.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.btn_Help.Location = new System.Drawing.Point(216, 240);
this.btn_Help.Name = "btn_Help";
this.btn_Help.Size = new System.Drawing.Size(64, 22);
this.btn_Help.TabIndex = 14;
this.btn_Help.Text = "幫 助";
//
// lbl_IsInterface
//
this.lbl_IsInterface.Location = new System.Drawing.Point(32, 80);
this.lbl_IsInterface.Name = "lbl_IsInterface";
this.lbl_IsInterface.Size = new System.Drawing.Size(72, 23);
this.lbl_IsInterface.TabIndex = 15;
this.lbl_IsInterface.Text = "有無界面:";
//
// txt_FunEntity
//
this.txt_FunEntity.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.txt_FunEntity.Location = new System.Drawing.Point(104, 136);
this.txt_FunEntity.Name = "txt_FunEntity";
this.txt_FunEntity.Size = new System.Drawing.Size(152, 21);
this.txt_FunEntity.TabIndex = 16;
this.txt_FunEntity.Text = "";
//
// SM_AddNewFunction
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(242)), ((System.Byte)(247)), ((System.Byte)(250)));
this.ClIEntSize = new System.Drawing.Size(320, 273);
this.Controls.Add(this.txt_FunEntity);
this.Controls.Add(this.lbl_IsInterface);
this.Controls.Add(this.btn_Help);
this.Controls.Add(this.btn_Cancel);
this.Controls.Add(this.btn_Confirm);
this.Controls.Add(this.ckb_IsInterface);
this.Controls.Add(this.lbl_Detail);
this.Controls.Add(this.txt_Detail);
this.Controls.Add(this.txt_BelongTo);
this.Controls.Add(this.cbo_Type);
this.Controls.Add(this.txt_Tag);
this.Controls.Add(this.txt_Name);
this.Controls.Add(this.lbl_BelongTo);
this.Controls.Add(this.lbl_FunEntity);
this.Controls.Add(this.lbl_Type);
this.Controls.Add(this.lbl_Tag);
this.Controls.Add(this.lbl_Name);
this.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(30)), ((System.Byte)(66)), ((System.Byte)(94)));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "SM_AddNewFunction";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "新增功能";
this.ResumeLayout(false);

}
#endregion

/// <summary>
/// 按確定按鈕後,先檢查輸入的數據的合法性;
/// 接著根據輸入對變量newFuncItem進行相應的賦值,然後調用InsertFuncItem過程在功能表中增加一條記錄
/// </summary>
private void btn_Confirm_Click(object sender, System.EventArgs e)
{
if(txt_Name.Text=="")
{
MessageBox.Show("功能名稱不能為空");
return;
}
if(txt_Tag.Text=="")
{
MessageBox.Show("功能標識不能為空");
return;
}
if(this.txt_FunEntity.Text=="")
{
MessageBox.Show("功能體不能為空");
return;
}
newFuncItem.funcName=txt_Name.Text.Trim();
newFuncItem.funcTag=txt_Tag.Text.Trim();
if(this.ckb_IsInterface.Checked==true)
{
newFuncItem.funcIsInterface="1";
}
else
{
newFuncItem.funcIsInterface="0";
}
newFuncItem.funcID=QueryNextFuncID();
//如果新生成的ID為0則表示沒有成功自動生成新ID,應該返回,不再執行增加操作。
if(newFuncItem.funcID==0) return;
newFuncItem.funcType=this.cbo_Type.SelectedValue.ToString().Trim();
newFuncItem.funcEntity=this.txt_FunEntity.Text.Trim();
newFuncItem.funcBelongTo=this.txt_BelongTo.Text.Trim();
newFuncItem.funcDetail=this.txt_Detail.Text.Trim();
newFuncItem.funcIsExpand="";
newFuncItem.funcVer="";
InsertFuncItem(newFuncItem);
this.Close();

}

/// <summary>
///輸出自動生成的ID號,如果生成失敗則輸出0
/// </summary>
private long QueryNextFuncID()
{
funcTableConn.Open ();
OracleCommand mySelectCmd= new OracleCommand();
mySelectCmd.Connection = funcTableConn;
mySelectCmd.CommandText = "select SEQ_功能.nextval from dual";
mySelectCmd.CommandType = CommandType.Text ;
long nextID=0;
try
{
OracleDataReader myReader = mySelectCmd.ExecuteReader();
myReader.Read();
nextID= myReader.GetInt64(0);
myReader.Close();
}
catch(Exception ex)
{
MessageBox.Show("查詢時出現錯誤:"+ex.ToString());
}
finally
{
funcTableConn.Close ( ) ;
}
return nextID;
}

/// <summary>
/// 在功能表中插入一條新記錄,利用了回滾功能,即如果插入不成功則功能表
/// 恢復為插入前的狀態
/// </summary>
/// <param name="newItem">要插入的新紀錄的信息</param>
private void InsertFuncItem(FunctionTable newItem)
{
funcTableConn.Open();
System.Data.OracleClIEnt.OracleTransaction myTran = funcTableConn.BeginTransaction ();
try
{
OracleCommand cmd = new OracleCommand ();

cmd.CommandText = "INSERT INTO 功能 (功能ID,功能標識,功能名稱,功能簡述, 所屬窗體,有無界面,功能類別,功能體,上級功能ID,可否展顯,版本號) values ('"
+newItem.funcID+"', '"
+newItem.funcTag+"', '"
+newItem.funcName+"', '"
+newItem.funcDetail+"', '"
+newItem.funcBelongTo+"', '"
+newItem.funcIsInterface+"', '"
+newItem.funcType+"', '"
+newItem.funcEntity+"', '"
+newItem.funcFatherID+"', '"
+newItem.funcIsExpand+"', '"
+newItem.funcVer+"')";
cmd.Transaction = myTran;
cmd.Connection =funcTableConn;
cmd.ExecuteNonQuery ();
myTran.Commit ();
}
catch(Exception ee)
{
try
{
myTran.Rollback();
}
catch (OracleException ex)
{
if (myTran.Connection != null)
{
MessageBox.Show ("在回滾時發生 " + ex.GetType() +" 異常!",
"警告",System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Warning);
}
}

MessageBox.Show ("發生" + ee.GetType() +
"異常\n" +"沒有添加任何記錄!","警告",System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Warning);
}
finally
{
funcTableConn.Close();
}
}

private void btn_Cancel_Click(object sender, System.EventArgs e)
{
//如果點擊取消的話則newFuncItem.funcID賦值為-1
newFuncItem.funcID=-1;
this.Close();
}

}
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved