UltraWebTree的使用心得

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="sta_edit.aspx.cs" Inherits="hbproject.standard.sta_edit" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<link href="../UI/dialogStyle.css" type="text/css" rel="stylesheet">
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="400" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<asp:Label ID="ORDER_NUMBER_lable" runat="server" Text="序号:" Width="78" ></asp:Label>
</td>
<td>
<asp:TextBox ID="ORDER_NUMBER" runat="server" CssClass="MDInput" Width="300"></asp:TextBox>
</td>
<tr>
<td>
<asp:Label ID="TITLE_lable" runat="server" Text="标题:" Width="78" ></asp:Label>
</td>
<td>
<asp:TextBox ID="TITLE" runat="server" CssClass="MDInput" Width="300"></asp:TextBox>
</td>
</tr>
</tr>
<tr>
<td width="78" >
<asp:Label ID="CONTENT_lable" runat="server" Text="内容:" Width="78" ></asp:Label>
</td>
<td valign="top" width="300" colspan="1" height="62">
<asp:TextBox ID="CONTENT" Height="88px" runat="server" CssClass="MDInput"
Width="100%" TextMode="MultiLine"></asp:TextBox>
</td>
</tr>
<tr>
<td width="100">
<asp:Label ID="SCORE_lable" runat="server" Text="分数:" Width="78" ></asp:Label>
</td>
<td>
<asp:TextBox ID="SCORE" runat="server" CssClass="MDInput" Width="300"></asp:TextBox>
</td>
</tr>
<tr>
<td width="78">
<asp:Label ID="REMARK_lable" runat="server" Text="备注:" Width="78" ></asp:Label>
</td>
<td>
<asp:TextBox ID="REMARK" Height="88px" runat="server" CssClass="MDInput"
Width="300" TextMode="MultiLine"></asp:TextBox>
</td>
</tr>
<tr>
<td width="78">
<asp:Label ID="STANDARD_TYPE_lable" runat="server" Text="标准类别:" Width="78" ></asp:Label>
</td>
<td>
<asp:TextBox ID="STANDARD_TYPE" runat="server" CssClass="MDInput" Width="300"></asp:TextBox>
</td>
</tr>
<tr>
<td width="78">
<asp:Label ID="MIN_SCORE_lable" runat="server" Text="最小分数:" Width="78" ></asp:Label>
</td>
<td>
<asp:TextBox ID="MIN_SCORE" runat="server" CssClass="MDInput" Width="300"></asp:TextBox>
</td>
</tr>
<tr>
<td width="78">
<asp:Label ID="MAX_SCORE_lable" runat="server" Text="最大分数:" Width="78" ></asp:Label>
</td>
<td>
<asp:TextBox ID="MAX_SCORE" runat="server" CssClass="MDInput" Width="300"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right" width="100%" colspan="2">
<asp:Button ID="btOk" runat="server" CssClass="MDButton" Text=" 确 定 " OnClick="btOk_Click">
</asp:Button>
<asp:Button ID="btClose" runat="server" CssClass="MDButton" Text=" 取 消 " OnClientClick="window.close();">
</asp:Button>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
上班的第一天,接到任务要使用UltraWebTree
截图如下
以下是我写的代码,用到的控件需安装NetAdvantage 2009 for .net

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Standard.aspx.cs" Inherits="hbproject.standard.Standard" %>
<%@ Register assembly="Infragistics35.WebUI.UltraWebNavigator.v9.1, Version=9.1.20091.1015, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" namespace="Infragistics.WebUI.UltraWebNavigator" tagprefix="ignav" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>科研项目申请评分</title>
<link href="../UI/style.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="../script/BaseScript.js"></script>
<script type="text/javascript">
function Add() {
var tree = igtree_getTreeById('treeList');
var title = escape('添加表项');
//计算当前节点的字节点个数,为了使序号自动生成
var count = 0;
arrayNode = new Array();
var ss = tree.getSelectedNode();
arrayNode = ss.getChildNodes();
count = arrayNode.length + 1;
var url = "../Launch.aspx?title=" + title + "&url=standard/standard_add.aspx?PARENT_STANDARD_ID=" + tree.getSelectedNode().getTag() + "&targetFrame=" + tree.getSelectedNode().getTargetFrame() + "&count=" + count;
//设置添加窗体的大小
if (tree.getSelectedNode().getTargetFrame() == "child") {
ref = showModalDialog(url, null, 'status:no;dialogWidth:450px;dialogHeight:400px;dialogHide:true;help:no;scroll:no');
}
else {
ref = showModalDialog(url, null, 'status:no;dialogWidth:450px;dialogHeight:300px;dialogHide:true;help:no;scroll:no');
}
if (ref == 1) {
return true;
}
else {
return false;
}
}
function Edit() {
var tree = igtree_getTreeById('treeList');
if (tree.getSelectedNode() != null) {
var title = escape('编辑表项');
var url = "";
var res = Object;
if (tree.getSelectedNode().getParent().getTag() == "-1")//大类
{
url = "../Launch.aspx?title=" + title + "&url=standard/sta_edit.aspx?STANDARD_ID=" + tree.getSelectedNode().getTag() + "&targetFrame=" + tree.getSelectedNode().getTargetFrame();
res = showModalDialog(url, null, 'status:no;dialogWidth:450px;dialogHeight:400px;dialogHide:true;help:no;scroll:no');
}
//小项
else {
url = "../Launch.aspx?title=" + title + "&url=standard/sta_edit.aspx?STANDARD_ID=" + tree.getSelectedNode().getTag() + "&targetFrame=" + tree.getSelectedNode().getTargetFrame();
res = showModalDialog(url, null, 'status:no;dialogWidth:450px;dialogHeight:400px;dialogHide:true;help:no;scroll:no');
}
if (res == 1) {
alert("编辑表单类别成功!");
return true;
}
}
else {
alert("请选择相应的表单类别!");
}
return false;
}
function Del() {
var tree = igtree_getTreeById('treeList');
if (tree.getSelectedNode() == null) {
alert("请选择相应的表单类别!");
return false;
}
if (confirm("是否确定删除该项!")) {
return true;
}
return false;
}
function Check() {
// var tree = igtree_getTreeById('treeList');
// if (tree.getSelectedNode() == null || tree.getSelectedNode().getParent() == null) {
// document.getElementById("btnAdd").style.display = "";
// document.getElementById("btnEdit").style.display = "none";
// document.getElementById("btnDel").style.display = "none";
// }
// else if (tree.getSelectedNode().getParent().getTag() != "-1") {
// document.getElementById("btnAdd").style.display = "none";
// document.getElementById("btnEdit").style.display = "";
// document.getElementById("btnDel").style.display = "";
// }
// else {
// document.getElementById("btnAdd").style.display = "";
// document.getElementById("btnEdit").style.display = "";
// document.getElementById("btnDel").style.display = "";
// }
}
</script>
</head>
<body onload="Check();">
<form id="form1" runat="server">
<div>
<table width="100%" cellpadding="0" cellspacing="0" class="SearchBar">
<tr class="SearchBar" valign="middle">
<td>
<asp:imagebutton onmousedown="this.src='../images/BT_AddDown.gif'" id="btnAdd" onmouseover="this.src='../images/BT_AddOver.gif'"
onfocus="if(this.blur)this.blur()" onmouseout="this.src='../images/BT_Add.gif'" AlternateText="添加"
Runat="server" BorderWidth="0" ImageUrl="../images/BT_Add.gif" onclick="btnAdd_Click1"></asp:imagebutton>
<asp:imagebutton onmousedown="this.src='../images/BT_EditDown.gif'"
id="btnEdit" onmouseover="this.src='../images/BT_EditOver.gif'"
onfocus="if(this.blur)this.blur()" onmouseout="this.src='../images/BT_Edit.gif'" AlternateText="编辑"
Runat="server" BorderWidth="0" ImageUrl="../images/BT_Edit.gif" onclick="btnEdit_Click1"></asp:imagebutton>
<asp:imagebutton onmousedown="this.src='../images/BT_DelDown.gif'" id="btnDel" onmouseover="this.src='../images/BT_DelOver.gif'"
onfocus="if(this.blur)this.blur()" onmouseout="this.src='../images/BT_Del.gif'" AlternateText="删除"
Runat="server" BorderWidth="0" ImageUrl="../images/BT_Del.gif" onclick="btnDel_Click1"></asp:imagebutton>
</td>
</tr>
</table>
<table>
<tr>
<td width="17%" valign="top" >
<ignav:UltraWebTree Height="600px" id="treeList" runat="server"
BackColor="White" BorderStyle="Inset"
BorderWidth="1px" WebTreeTarget="ClassicTree" DefaultImage="../Images/folder.gif"
DefaultSelectedImage="../Images/folder.gif" Width="800px" HiliteClass=""
HoverClass="" Indentation="20">
<SelectedNodeStyle ForeColor="White" BackColor="Navy"></SelectedNodeStyle>
<Levels>
<ignav:Level Index="0"></ignav:Level>
<ignav:Level Index="1"></ignav:Level>
<ignav:Level Index="2"></ignav:Level>
<ignav:Level Index="3"></ignav:Level>
</Levels>
<ClientSideEvents AfterNodeSelectionChange="Check"></ClientSideEvents>
</ignav:UltraWebTree>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Infragistics.WebUI.UltraWebNavigator;
namespace hbproject.standard
{
public partial class Standard : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.btnAdd.Attributes.Add("onclick","return Add();");
this.btnEdit.Attributes.Add("onclick","return Edit();");
this.btnDel.Attributes.Add("onclick", "return Del();");
InitTree();
}
}
#region 初始化树
private void InitTree()
{
this.treeList.ClearAll();
Node startNode = new Node();
startNode.Tag = "-1";
startNode.Text = "表名";
//startNode.TargetFrame = "hasChild";
//startNode.
Node root= treeList.Nodes.Add(startNode);
root.Expanded = true;
DataTable dt = dal.STANDARD_LIST().Tables[0];
//第一层节点遍历
DataView dv = dal.STANDARD_LIST().Tables[0].DefaultView;
dv.RowFilter = "PARENT_STANDARD_ID is null";
for (int i = 0; i < dv.Count; i++)
{
Node nd = new Node();
nd.Text = dv[i]["TITLE"].ToString() + "、" + dv[i]["CONTENT"].ToString();
nd.Tag = dv[i]["STANDARD_ID"].ToString();
//大类标签
//nd.TargetFrame = "Categories";
//nd.HoverClass = dv[i]["LEVEL_FLAG"].ToString();
//this.treeList.Nodes.Add(nd);
Node child = startNode.Nodes.Add(nd);
child.Expanded = true;
//if (SelNodeTagID == nd.Tag.ToString().Trim())
// {
// treeList.SelectedNode = nd;
// }
}
this.treeList.SelectedNode = this.treeList.Nodes[0];
GenerateTree(this.treeList.Nodes, dt);
}
#endregion
#region GenerateTree
private void GenerateTree(Nodes nodes, DataTable dt)
{
if (nodes != null)
{
foreach (Node n in nodes)
{
DataView dv = dt.DefaultView;
dv.RowFilter = "PARENT_STANDARD_ID=" + n.Tag.ToString();
//dv.Sort = "ORDER_NUM ASC";
for (int i = 0; i < dv.Count; i++)
{
Node nd = new Node();
nd.Text = dv[i]["TITLE"].ToString() +"、"+ dv[i]["CONTENT"].ToString();
nd.Tag = dv[i]["STANDARD_ID"].ToString();
//nd.HoverClass = dv[i]["LEVEL_FLAG"].ToString();
nd.TargetFrame = "child";
n.Nodes.Add(nd);
nd.Expanded = true;
//if (SelNodeTagID == nd.Tag.ToString().Trim())
// {
// treeList.SelectedNode = nd;
// nd.Expand(true);
// }
}
if (n.Nodes.Count > 0)
{
GenerateTree(n.Nodes, dt);
}
}
}
}
#endregion
protected void btnAdd_Click(object sender, ImageClickEventArgs e)
{
InitTree();
}
protected void btnEdit_Click(object sender, ImageClickEventArgs e)
{
InitTree();
}
protected void btnDel_Click(object sender, ImageClickEventArgs e)
{
InitTree();
}
protected void btnDel_Click1(object sender, ImageClickEventArgs e)
{
dal.STANDARD_DEL(int.Parse(this.treeList.SelectedNode.Tag.ToString()));
InitTree();
}
protected void btnAdd_Click1(object sender, ImageClickEventArgs e)
{
InitTree();
}
protected void btnEdit_Click1(object sender, ImageClickEventArgs e)
{
InitTree();
}
}
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace hbproject.standard
{
public partial class standard_add : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.btOk.Text = "添加";
STANDARD_TYPE_lable.Visible = false;
STANDARD_TYPE.Visible = false;
MIN_SCORE_lable.Visible = false;
MIN_SCORE.Visible = false;
MAX_SCORE_lable.Visible = false;
MAX_SCORE.Visible = false;
string count = Request["count"].ToString();
ORDER_NUMBER.Text = count;
string targetFrame = Request["targetFrame"].ToString();
if (targetFrame == "child")
{
STANDARD_TYPE_lable.Visible = true;
STANDARD_TYPE.Visible = true;
MIN_SCORE_lable.Visible = true;
MIN_SCORE.Visible = true;
MAX_SCORE_lable.Visible = true;
MAX_SCORE.Visible = true;
}
}
//if(Request[""]
}
protected void btOk_Click(object sender, EventArgs e)
{
string order_number;
string title;
string content;
string score;
string remark;
string standard_type;
string parent_standard_id;
string min_score;
string max_score;
string targetFrame = Request["targetFrame"].ToString();
if (targetFrame == "child")
{
order_number = ORDER_NUMBER.Text.Trim();
title = TITLE.Text.Trim();
content = CONTENT.Text.Trim();
score = SCORE.Text.Trim();
remark = REMARK.Text.Trim();
standard_type = STANDARD_TYPE.Text.Trim();
parent_standard_id = Request["PARENT_STANDARD_ID"].ToString();
min_score = MIN_SCORE.Text.Trim();
max_score = MAX_SCORE.Text.Trim();
}
else
{
order_number = ORDER_NUMBER.Text.Trim();
title = TITLE.Text.Trim();
content = CONTENT.Text.Trim();
score = SCORE.Text.Trim();
remark = REMARK.Text.Trim();
parent_standard_id = Request["PARENT_STANDARD_ID"].ToString();
standard_type = "";
min_score = "0";
max_score = score;
}
int out_id = -1;
dal.STANDARD_ADD(title, content, score, remark, standard_type, Convert.ToInt32(parent_standard_id), Convert.ToInt32(min_score), Convert.ToInt32(max_score), Convert.ToInt32(order_number), out out_id);
Response.Write("<script>window.returnValue=1;window.open=null;window.close();</script>");
}
}
}

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="sta_edit.aspx.cs" Inherits="hbproject.standard.sta_edit" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<link href="../UI/dialogStyle.css" type="text/css" rel="stylesheet">
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="400" cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<asp:Label ID="ORDER_NUMBER_lable" runat="server" Text="序号:" Width="78" ></asp:Label>
</td>
<td>
<asp:TextBox ID="ORDER_NUMBER" runat="server" CssClass="MDInput" Width="300"></asp:TextBox>
</td>
<tr>
<td>
<asp:Label ID="TITLE_lable" runat="server" Text="标题:" Width="78" ></asp:Label>
</td>
<td>
<asp:TextBox ID="TITLE" runat="server" CssClass="MDInput" Width="300"></asp:TextBox>
</td>
</tr>
</tr>
<tr>
<td width="78" >
<asp:Label ID="CONTENT_lable" runat="server" Text="内容:" Width="78" ></asp:Label>
</td>
<td valign="top" width="300" colspan="1" height="62">
<asp:TextBox ID="CONTENT" Height="88px" runat="server" CssClass="MDInput"
Width="100%" TextMode="MultiLine"></asp:TextBox>
</td>
</tr>
<tr>
<td width="100">
<asp:Label ID="SCORE_lable" runat="server" Text="分数:" Width="78" ></asp:Label>
</td>
<td>
<asp:TextBox ID="SCORE" runat="server" CssClass="MDInput" Width="300"></asp:TextBox>
</td>
</tr>
<tr>
<td width="78">
<asp:Label ID="REMARK_lable" runat="server" Text="备注:" Width="78" ></asp:Label>
</td>
<td>
<asp:TextBox ID="REMARK" Height="88px" runat="server" CssClass="MDInput"
Width="300" TextMode="MultiLine"></asp:TextBox>
</td>
</tr>
<tr>
<td width="78">
<asp:Label ID="STANDARD_TYPE_lable" runat="server" Text="标准类别:" Width="78" ></asp:Label>
</td>
<td>
<asp:TextBox ID="STANDARD_TYPE" runat="server" CssClass="MDInput" Width="300"></asp:TextBox>
</td>
</tr>
<tr>
<td width="78">
<asp:Label ID="MIN_SCORE_lable" runat="server" Text="最小分数:" Width="78" ></asp:Label>
</td>
<td>
<asp:TextBox ID="MIN_SCORE" runat="server" CssClass="MDInput" Width="300"></asp:TextBox>
</td>
</tr>
<tr>
<td width="78">
<asp:Label ID="MAX_SCORE_lable" runat="server" Text="最大分数:" Width="78" ></asp:Label>
</td>
<td>
<asp:TextBox ID="MAX_SCORE" runat="server" CssClass="MDInput" Width="300"></asp:TextBox>
</td>
</tr>
<tr>
<td align="right" width="100%" colspan="2">
<asp:Button ID="btOk" runat="server" CssClass="MDButton" Text=" 确 定 " OnClick="btOk_Click">
</asp:Button>
<asp:Button ID="btClose" runat="server" CssClass="MDButton" Text=" 取 消 " OnClientClick="window.close();">
</asp:Button>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
namespace hbproject.standard
{
public partial class sta_edit : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.btOk.Text = "修改";
STANDARD_TYPE_lable.Visible = false;
STANDARD_TYPE.Visible = false;
MIN_SCORE_lable.Visible = false;
MIN_SCORE.Visible = false;
MAX_SCORE_lable.Visible = false;
MAX_SCORE.Visible = false;
string targetFrame = Request["targetFrame"].ToString();
if (targetFrame == "child")
{
STANDARD_TYPE_lable.Visible = true;
STANDARD_TYPE.Visible = true;
MIN_SCORE_lable.Visible = true;
MIN_SCORE.Visible = true;
MAX_SCORE_lable.Visible = true;
MAX_SCORE.Visible = true;
}
if (Request["STANDARD_ID"] != null && Request["STANDARD_ID"].ToString() != "")
{
DataSet ds = dal.STANDARD_LOAD(int.Parse(Request["STANDARD_ID"].ToString()));
this.ORDER_NUMBER.Text = ds.Tables[0].Rows[0]["ORDER_NUMBER"].ToString();
this.CONTENT.Text = ds.Tables[0].Rows[0]["CONTENT"].ToString();
this.SCORE.Text = ds.Tables[0].Rows[0]["SCORE"].ToString();
this.REMARK.Text = ds.Tables[0].Rows[0]["REMARK"].ToString();
this.STANDARD_TYPE.Text = ds.Tables[0].Rows[0]["STANDARD_TYPE"].ToString();
this.MIN_SCORE.Text = ds.Tables[0].Rows[0]["MIN_SCORE"].ToString();
this.MAX_SCORE.Text = ds.Tables[0].Rows[0]["MAX_SCORE"].ToString();
this.TITLE.Text=ds.Tables[0].Rows[0]["TITLE"].ToString();
}
}
//if(Request[""]
}
protected void btOk_Click(object sender, EventArgs e)
{
string standard_id = Request["STANDARD_ID"].ToString();
string order_number;
string title;
string content;
string score;
string remark;
string standard_type;
string parent_standard_id;
string min_score;
string max_score;
string targetFrame= Request["targetFrame"].ToString();
if (targetFrame == "child")
{
standard_id = Request["STANDARD_ID"].ToString();
order_number = ORDER_NUMBER.Text.Trim();
title = TITLE.Text.Trim();
content = CONTENT.Text.Trim();
score = SCORE.Text.Trim();
remark = REMARK.Text.Trim();
standard_type = STANDARD_TYPE.Text.Trim();
min_score = MIN_SCORE.Text.Trim();
max_score = MAX_SCORE.Text.Trim();
}
else
{
standard_id = Request["STANDARD_ID"].ToString();
order_number = ORDER_NUMBER.Text.Trim();
title = TITLE.Text.Trim();
content = CONTENT.Text.Trim();
score = SCORE.Text.Trim();
remark = REMARK.Text.Trim();
standard_type = "";
min_score = "0";
max_score = score;
}
dal.STANDARD_UPDATE(Convert.ToInt32(standard_id), title, content, score, remark, standard_type, Convert.ToInt32(min_score), Convert.ToInt32(max_score), Convert.ToInt32(order_number));
//dal.STANDARD_ADD(order_num, content, score, remark, standard_type, Convert.ToInt32(parent_standard_id), Convert.ToInt32(min_score), Convert.ToInt32(max_score),out out_id);
Response.Write("<script>window.returnValue=1;window.open=null;window.close();</script>");
}
}
}

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Data.OracleClient;
using WorkFlow.Labor.Model;
using WorkFlow.Control;
namespace hbproject.standard
{
public class dal
{
#region STANDARD_UPDATE
/// <summary>
/// STANDARD_UPDATE
/// </summary>
/// <param name="IN_STANDARD_ID"></param>
/// <param name="IN_TITLE"></param>
/// <param name="IN_CONTENT"></param>
/// <param name="IN_SCORE"></param>
/// <param name="IN_REMARK"></param>
/// <param name="IN_STANDARD_TYPE"></param>
/// <param name="IN_MIN_SCORE"></param>
/// <param name="IN_MAX_SCORE"></param>
/// <param name="IN_ORDER_NUMBER"></param>
/// <returns></returns>
public static void STANDARD_UPDATE(int IN_STANDARD_ID, string IN_TITLE, string IN_CONTENT, string IN_SCORE, string IN_REMARK, string IN_STANDARD_TYPE, int IN_MIN_SCORE, int IN_MAX_SCORE, int IN_ORDER_NUMBER)
{
System.Data.OracleClient.OracleParameter[] ps = new OracleParameter[]{
new OracleParameter("IN_STANDARD_ID",OracleType.Int32,22),
new OracleParameter("IN_TITLE",OracleType.VarChar,100),
new OracleParameter("IN_CONTENT",OracleType.VarChar,100),
new OracleParameter("IN_SCORE",OracleType.VarChar,100),
new OracleParameter("IN_REMARK",OracleType.VarChar,100),
new OracleParameter("IN_STANDARD_TYPE",OracleType.VarChar,100),
new OracleParameter("IN_MIN_SCORE",OracleType.Int32,22),
new OracleParameter("IN_MAX_SCORE",OracleType.Int32,22),
new OracleParameter("IN_ORDER_NUMBER",OracleType.Int32,22),
};
ps[0].Value = IN_STANDARD_ID;
ps[1].Value = IN_TITLE;
ps[2].Value = IN_CONTENT;
ps[3].Value = IN_SCORE;
ps[4].Value = IN_REMARK;
ps[5].Value = IN_STANDARD_TYPE;
ps[6].Value = IN_MIN_SCORE;
ps[7].Value = IN_MAX_SCORE;
ps[8].Value = IN_ORDER_NUMBER;
OracleData.ExecuteNonQuery(OracleData.CONNECT_STR, CommandType.StoredProcedure, "STANDARD_MANAGE.STANDARD_UPDATE", ps);
}
#endregion STANDARD_UPDATE
#region STANDARD_LIST
/// <summary>
/// STANDARD_LIST
/// </summary>
/// <returns></returns>
public static DataSet STANDARD_LIST()
{
System.Data.OracleClient.OracleParameter[] ps = new OracleParameter[]{
new OracleParameter("OUT_CUR", OracleType.Cursor,200, ParameterDirection.Output, true,0,0,"",DataRowVersion.Default,null),
};
return OracleData.ExecuteDataset(OracleData.CONNECT_STR, CommandType.StoredProcedure, "STANDARD_MANAGE.STANDARD_LIST", ps);
}
#endregion STANDARD_LIST
#region STANDARD_DEL
/// <summary>
/// STANDARD_DEL
/// </summary>
/// <param name="IN_STANDARD_ID"></param>
/// <returns></returns>
public static void STANDARD_DEL(int IN_STANDARD_ID)
{
System.Data.OracleClient.OracleParameter[] ps = new OracleParameter[]{
new OracleParameter("IN_STANDARD_ID",OracleType.Int32,22),
};
ps[0].Value = IN_STANDARD_ID;
OracleData.ExecuteNonQuery(OracleData.CONNECT_STR, CommandType.StoredProcedure, "STANDARD_MANAGE.STANDARD_DEL", ps);
}
#endregion STANDARD_DEL
#region STANDARD_LOAD
/// <summary>
/// STANDARD_LOAD
/// </summary>
/// <param name="IN_STANDARD_ID"></param>
/// <returns></returns>
public static DataSet STANDARD_LOAD(int IN_STANDARD_ID)
{
System.Data.OracleClient.OracleParameter[] ps = new OracleParameter[]{
new OracleParameter("IN_STANDARD_ID",OracleType.Int32,22),
new OracleParameter("OUT_CUR", OracleType.Cursor,200, ParameterDirection.Output, true,0,0,"",DataRowVersion.Default,null),
};
ps[0].Value = IN_STANDARD_ID;
return OracleData.ExecuteDataset(OracleData.CONNECT_STR, CommandType.StoredProcedure, "STANDARD_MANAGE.STANDARD_LOAD", ps);
}
#endregion STANDARD_LOAD
#region STANDARD_ADD
/// <summary>
/// STANDARD_ADD
/// </summary>
/// <param name="IN_TITLE"></param>
/// <param name="IN_CONTENT"></param>
/// <param name="IN_SCORE"></param>
/// <param name="IN_REMARK"></param>
/// <param name="IN_STANDARD_TYPE"></param>
/// <param name="IN_PARENT_STANDARD_ID"></param>
/// <param name="IN_MIN_SCORE"></param>
/// <param name="IN_MAX_SCORE"></param>
/// <param name="IN_ORDER_NUMBER"></param>
/// <param name="OUT_STANDARD_ID"></param>
/// <returns></returns>
public static void STANDARD_ADD(string IN_TITLE, string IN_CONTENT, string IN_SCORE, string IN_REMARK, string IN_STANDARD_TYPE, int IN_PARENT_STANDARD_ID, int IN_MIN_SCORE, int IN_MAX_SCORE, int IN_ORDER_NUMBER, out int OUT_STANDARD_ID)
{
System.Data.OracleClient.OracleParameter[] ps = new OracleParameter[]{
new OracleParameter("IN_TITLE",OracleType.VarChar,100),
new OracleParameter("IN_CONTENT",OracleType.VarChar,100),
new OracleParameter("IN_SCORE",OracleType.VarChar,100),
new OracleParameter("IN_REMARK",OracleType.VarChar,100),
new OracleParameter("IN_STANDARD_TYPE",OracleType.VarChar,100),
new OracleParameter("IN_PARENT_STANDARD_ID",OracleType.Int32,22),
new OracleParameter("IN_MIN_SCORE",OracleType.Int32,22),
new OracleParameter("IN_MAX_SCORE",OracleType.Int32,22),
new OracleParameter("IN_ORDER_NUMBER",OracleType.Int32,22),
new OracleParameter("OUT_STANDARD_ID",OracleType.Int32,22,ParameterDirection.Output,true,0,0,"",DataRowVersion.Default,null),
};
ps[0].Value = IN_TITLE;
ps[1].Value = IN_CONTENT;
ps[2].Value = IN_SCORE;
ps[3].Value = IN_REMARK;
ps[4].Value = IN_STANDARD_TYPE;
ps[5].Value = IN_PARENT_STANDARD_ID;
ps[6].Value = IN_MIN_SCORE;
ps[7].Value = IN_MAX_SCORE;
ps[8].Value = IN_ORDER_NUMBER;
OracleData.ExecuteNonQuery(OracleData.CONNECT_STR, CommandType.StoredProcedure, "STANDARD_MANAGE.STANDARD_ADD", ps);
OUT_STANDARD_ID = int.Parse(ps[9].Value.ToString());
}
#endregion STANDARD_ADD
}
}
表的建立

STANDARD_ID NUMBER N id
TITLE VARCHAR2(20) Y 标题
CONTENT VARCHAR2(2000) Y 内容
SCORE VARCHAR2(2000) Y 分数
REMARK VARCHAR2(2000) Y 备注
STANDARD_TYPE VARCHAR2(20) Y 标准类别,当前你填写的为 “科研评分标准”
PARENT_STANDARD_ID NUMBER Y 父项ID
MIN_SCORE NUMBER Y 分数范围
MAX_SCORE NUMBER Y
ORDER_NUMBER NUMBER Y 排序
oralce存储过程创建包体standard_manage 分别为定义和说明部分

create or replace package standard_manage as
procedure standard_add(In_TITLE In Varchar2,
In_CONTENT In Varchar2,
In_SCORE In Varchar2,
In_REMARK In Varchar2,
In_STANDARD_TYPE In VARCHAR2,
In_PARENT_STANDARD_ID In NUMBER,
In_MIN_SCORE In Number,
In_MAX_SCORE In Number,
In_ORDER_NUMBER In Number,
Out_STANDARD_ID Out NUMBER);
PROCEDURE standard_del(In_STANDARD_ID In Number);
procedure standard_update(In_STANDARD_ID In NUMBER,
In_TITLE In Varchar2,
In_CONTENT In Varchar2,
In_SCORE In Varchar2,
In_REMARK In Varchar2,
In_STANDARD_TYPE In VARCHAR2,
In_MIN_SCORE In Number,
In_MAX_SCORE In Number,
In_ORDER_NUMBER In Number);
PROCEDURE standard_load(In_STANDARD_ID In Number,
Out_Cur OUT Helper_Pkg.Operate_Cursor);
Procedure standard_list(out_cur Out Helper_pkg.Operate_Cursor);
end standard_manage;

create or replace package body standard_manage is
------添加数据项目------------
procedure standard_add(In_TITLE In Varchar2,
In_CONTENT In Varchar2,
In_SCORE In Varchar2,
In_REMARK In Varchar2,
In_STANDARD_TYPE In VARCHAR2,
In_PARENT_STANDARD_ID In NUMBER,
In_MIN_SCORE In Number,
In_MAX_SCORE In Number,
In_ORDER_NUMBER In Number,
Out_STANDARD_ID Out NUMBER) As
begin
Out_STANDARD_ID :=Helper_Pkg.New_Id('STANDARD');
If In_PARENT_STANDARD_ID = -1 Then
Insert Into Standard
(STANDARD_ID, TITLE, CONTENT, SCORE, REMARK ,STANDARD_TYPE,PARENT_STANDARD_ID,MIN_SCORE,MAX_SCORE,ORDER_NUMBER)
Values
(Out_STANDARD_ID, In_TITLE, In_CONTENT,In_SCORE,In_REMARK,In_STANDARD_TYPE,Null,In_MIN_SCORE,In_MAX_SCORE,In_ORDER_NUMBER);
Else
Insert Into Standard
(STANDARD_ID, TITLE, CONTENT, SCORE, REMARK ,STANDARD_TYPE,PARENT_STANDARD_ID,MIN_SCORE,MAX_SCORE,ORDER_NUMBER)
Values
(Out_STANDARD_ID, In_TITLE, In_CONTENT,In_SCORE,In_REMARK,In_STANDARD_TYPE,In_PARENT_STANDARD_ID,In_MIN_SCORE,In_MAX_SCORE,In_ORDER_NUMBER);
End If;
end;
--------更新数据项目------------
procedure standard_update(In_STANDARD_ID In NUMBER,
In_TITLE In Varchar2,
In_CONTENT In Varchar2,
In_SCORE In Varchar2,
In_REMARK In Varchar2,
In_STANDARD_TYPE In VARCHAR2,
In_MIN_SCORE In Number,
In_MAX_SCORE In Number,
In_ORDER_NUMBER In Number) As
Begin
Update Standard
Set TITLE = In_TITLE,
CONTENT = In_CONTENT,
SCORE = In_SCORE,
REMARK = In_REMARK,
STANDARD_TYPE = In_STANDARD_TYPE,
MIN_SCORE = In_MIN_SCORE,
MAX_SCORE = In_MAX_SCORE,
ORDER_NUMBER = In_ORDER_NUMBER
Where STANDARD_ID = In_STANDARD_ID;
End;
--------删除数据项目-----------
PROCEDURE standard_del(In_STANDARD_ID In Number) As
Begin
Delete From Standard Where STANDARD_ID = IN_STANDARD_ID;
End;
----------查找特定项------------
PROCEDURE standard_load(In_STANDARD_ID In Number,
Out_Cur OUT Helper_Pkg.Operate_Cursor) As
Begin
Open Out_Cur For
Select * From Standard Where STANDARD_ID = In_STANDARD_ID;
End;
----------查找所有项----------------
Procedure standard_list(Out_Cur Out Helper_Pkg.Operate_Cursor)As
Begin
Open Out_Cur For
Select * From Standard
Order By ORDER_NUMBER ;
End;
end standard_manage;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?