ASP.NET小型证券术语解释及翻译系统的设计与开发
摘 要
在系统设计上,综合各种翻译类型网站优缺点,设计出具有任何使用者都可添加术语信息的且只有管理员能够实现术语修改及删除等独特方式的术语查看管理系统。此方式能够使术语量快速增大,并且便于使用者及管理员操作,满足相互之间不断增长的需求,即使用者增加术语量,管理员管理以实现数据信息的合理管理及利用。在查看方式上,使用术语的第一个汉字的中文拼音首字母为索引,并分页显示,用户能够非常方便地找到所需术语名及对应的英、日文翻译。此外,系统还提供术语搜索,更加方便用户查询。管理方式和按首字母分页显示及搜索的查看方式为系统第二个特点。其次,应用Cascading style Sheets(简称CSS,层叠样式表)外部链接方式,界面(UI)较为精致。系统应用CSS自定义样式并在首页应用透明FLASH,具有操作简便、界面友好等特性。
关键词:计算机应用技术;ASP.net 2005;证券术语;解释及翻译;术语管理
3.1 系统功能结构设计
在系统需求分析的基础上,结合系统设计的目标,可将系统划分为4个功能模块:
- 首页:术语添加
- 术语一览:默认术语按ID顺序分页显示;页面上方点击术语中文拼音首字母可按首字母检索分页查看;页面中间提供输入术语名搜索方式查看术语。
- 术语管理:主要包括管理员登陆模块,对术语进行修改和删除操作。
- 其它模块:提供相关业务的服务,如资料下载等。
3.2 开发设计思想
系统开发设计思想有以下3点:
- 系统采用B/S结构,选用ASP.NET2005和SQL2000作为开发工具及开发环境进行系统的设计与开发。系统提供术语应准确全面,符合证券翻译及解释系统用户需求,并达到操作过程中的直观、方便、实用等要求。
- 系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于日后的补充和维护。
- 系统应具备数据库维护功能,及时根据用户需求进行术语的添加、删除、修改等操作。
5.1 公用模块及代码
- 定义数据库公用操作方法类DbHelperSQL,用以连接数据库,执行sql语句等数据库操作。
- 定义公共类Glossary,完成添加,修改,删除等操作。
- 定义公共验证类PageValidate。
5.2 首页界面及功能代码
首页为系统门户,是使用者对系统的第一印象,故需精心设计。根据对系统用户群的分析,设计出如下所示的首页界面如下图5所示:

图5 首页
首页中用户有点击添加术语信息的功能,中间运用透明FLASH代码将所制作的图片放为背景图,在代码中加入如下代码,将FLASH变为透明。
<param name="wmode" value="transparent" />
添加功能模块具有添加术语五项信息功能,在Glossary.cs中编写如下代码实现添加功能:
/// 增加一条数据
public int Add()
{
StringBuilder strSql=new StringBuilder();
strSql.Append("insert into Glossary(");
strSql.Append("cGlossaryName,cChineseSpell,cGlossaryEnglish,cGlossaryJapan,cGlossaryInterpret)");
strSql.Append(" values (");
strSql.Append("@cGlossaryName,@cChineseSpell,@cGlossaryEnglish,@cGlossaryJapan,@cGlossaryInterpret)");
SqlParameter[] parameters = {
new SqlParameter("@cGlossaryName", SqlDbType.NVarChar),
new SqlParameter("@cChineseSpell", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryEnglish", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryJapan", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryInterpret", SqlDbType.NVarChar)};
parameters[0].Value = cGlossaryName;
parameters[1].Value = cChineseSpell;
parameters[2].Value = cGlossaryEnglish;
parameters[3].Value = cGlossaryJapan;
parameters[4].Value = cGlossaryInterpret;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
return ID;
}
Append方法将sql语句连接起来,整个的语句为
Insert into Glossary
(cGlossaryName,cChineseSpell,cGlossaryEnglish,cGlossaryJapan,cGlossaryInterpret)
Values (@cGlossaryName,@cChineseSpell,@cGlossaryEnglish,@cGlossaryJapan,@cGlossaryInterpret)
定义一个new SqlParameter,执行数据库公用方法DbHelperSQL.cs中定义的ExecuteSql完成与数据库连接,并执行SqlCommand语句,返回ID。
在ADD.cs中,代码如下
Glossary g = new Glossary();
g.cGlossaryName = PageValidate.Encode(this.txtName.Text);
g.cChineseSpell = PageValidate.Encode(this.txtChineseSpell.Text);
g.cGlossaryEnglish = PageValidate.Encode(this.txtEnglish.Text);
g.cGlossaryJapan = PageValidate.Encode(this.txtJapanese.Text);
g.cGlossaryInterpret = PageValidate.Encode(this.txtInterPret.Text);
g.Add();
Response.Write("<script>alert('添加成功');</script>");
将所要添加的术语信息通过PageValidate.Encode方法增加到数据库中,完成添加功能。
5.3 术语一览界面和主要代码
术语一览界面如下图6所示:

图6 术语一览
- 系统默认为按术语ID分页显示。
- 利用cChineseSpell字段,中文拼音首字母为S的演示结果如下图7所示:

图7 以S为索引分页显示
点击索引S,画面上出现以S为拼音开头的所有术语,分页显示,很容易找到所需术语名。
按术语中文拼音首字母检索浏览方式代码如下:
页面ViewAll.aspx中代码如下:
<td><a href="ViewAll.aspx?spell=A" class="fontview">A</a></td>
后台ViewAll.aspx.cs中代码:
if (Request["spell"] != null)
{
this.gvGlossary.DataSource = g.GetList(" cChineseSpell like '" + Request["spell"].ToString() + "%' order by ID asc");
this.gvGlossary.DataBind();
return;
}
this.gvGlossary.DataSource = g.GetList(" 1=1 order by ID asc");
this.gvGlossary.DataBind();
利用Request["spell"]与cChineseSpell比较,以ID的升序排列来检索分页显示。
- 搜索功能的实现代码如下:
if (Request["search"] != null)
{
this.gvGlossary.DataSource = g.GetList(" cGlossaryName like '"+Request["search"].ToString()+"%' order by ID asc");
this.gvGlossary.DataBind();
return;
}
以所输入的术语名与数据库中cGlossaryName比较,得出搜索结果。
5.4 管理模块
管理模块中首先为管理员登陆、管理员用户验证。输入用户名或密码为空时再label中显示红色提示语:“用户名和密码不能为空!”;当输入有误时在label中显示提示语“您输入的用户名或密码有误!请重新输入。”;清除按钮将账号和密码都清空,如下图8,图9所示:

图8 用户验证(1)

图9 用户验证(2)
当确定为系统管理员后页面将登录到术语管理模块,主要有管理员查看、修改和删除操作。界面如下图10所示:

图10 管理模块
查看操作与术语浏览操作相似,不再赘述。
修改页面如下图11所示:

图11 修改
点击修改成功时弹出“修改成功”提示语。
在Glossary.cs中代码如下:
public void Update(int id)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("update Glossary set ");
strSql.Append("cGlossaryName=@cGlossaryName,");
strSql.Append("cChineseSpell=@cChineseSpell,");
strSql.Append("cGlossaryEnglish=@cGlossaryEnglish,");
strSql.Append("cGlossaryJapan=@cGlossaryJapan,");
strSql.Append("cGlossaryInterpret=@cGlossaryInterpret");
strSql.Append(" where ID=@ID" );
SqlParameter[] parameters = {
new SqlParameter("@ID",SqlDbType.Int),
new SqlParameter("@cGlossaryName", SqlDbType.NVarChar),
new SqlParameter("@cChineseSpell", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryEnglish", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryJapan", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryInterpret", SqlDbType.NVarChar)};
parameters[0].Value = id;
parameters[1].Value = cGlossaryName;
parameters[2].Value = cChineseSpell;
parameters[3].Value = cGlossaryEnglish;
parameters[4].Value = cGlossaryJapan;
parameters[5].Value = cGlossaryInterpret;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
}
在修改页面Update.aspx.cs中代码如下
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request["id"] != null)
{
Glossary g = new Glossary();
g.GetModel(int.Parse(Request["id"]));
this.txtName.Text = PageValidate.Decode(g.cGlossaryName);
this.txtChineseSpell.Text = PageValidate.Decode(g.cChineseSpell);
this.txtEnglish.Text = PageValidate.Decode(g.cGlossaryEnglish);
this.txtInterPret.Text = PageValidate.Decode(g.cGlossaryInterpret);
this.txtJapanese.Text = PageValidate.Decode(g.cGlossaryJapan);
}
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (Request["id"] != null)
{
Glossary g = new Glossary();
g.GetModel(int.Parse(Request["id"]));
g.cGlossaryName = PageValidate.Encode(this.txtName.Text);
g.cChineseSpell = PageValidate.Encode(this.txtChineseSpell.Text);
g.cGlossaryEnglish = PageValidate.Encode(this.txtEnglish.Text);
g.cGlossaryJapan = PageValidate.Encode(this.txtJapanese.Text);
g.cGlossaryInterpret = PageValidate.Encode(this.txtInterPret.Text);
g.Update(int.Parse(Request["id"]));
Response.Write("<script>alert('修改成功');</script>");
}
}
在PageLoad时用PageValidate.Decode方法获得数据库中原有数据项,然后修改后用PageValidate.Encode方法将修改后的数据项传到数据库中。此处注意必须将Update方法带上参数int id,然后才能修改数据库中数据项。
删除操作,在Glossary.cs中定义如下代码:
public void Delete(int ID)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("delete from Glossary ");
strSql.Append("where ID=@ID" );
SqlParameter[] parameters = {
new SqlParameter("@ID", SqlDbType.Int,4) };
parameters[0].Value = ID;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
}
在Manage.aspx.cs中编写删除代码如下:
Glossary g = new Glossary();
g.Delete(int.Parse(this.gvGlossary.DataKeys[e.RowIndex].Value.ToString()));
Response.Write("<script>alert('删除成功');</script>");
bindALL();
点击删除时出现确认是否要删除,删除成功后显示删除成功提示语。
相关文章:
ASP.NET小型证券术语解释及翻译系统的设计与开发
摘 要 在系统设计上,综合各种翻译类型网站优缺点,设计出具有任何使用者都可添加术语信息的且只有管理员能够实现术语修改及删除等独特方式的术语查看管理系统。此方式能够使术语量快速增大,并且便于使用者及管理员操作,满足相互…...
硬件知识积累 音频插座的了解,看音频插座的原理图来了解音频插座的引脚。
1. 音频接口 音频插座是一种用于连接音频信号线路的电子元件,常见于音频设备(如音响、耳机、话筒等)中。它的主要作用是将电子信号转化为声音信号,以满足人们对于音乐、电影、游戏等方面的需求。 根据插头形状的不同,音…...
error LNK2001: 无法解析的外部符号 “__declspec(dllimport) public: __cdecl ......
运行程序时,报如上图所示错误,其中一条是: ReflectionProbe.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl osg::Object::Object(bool)" (__imp_??0ObjectosgQEAA_NZ) 报这个错误一般是因为…...
邮箱Webhook API发送邮件的性能怎么优化?
邮箱Webhook API发送邮件的步骤?如何用邮箱API发信? 随着业务规模的扩大,如何高效地通过邮箱Webhook API发送邮件,成为了许多企业面临的关键问题。下面,AokSend将探讨一些优化邮箱Webhook API发送邮件性能的方法。 邮…...
并发编程实现
一、并行编程 1、Parallel 类 Parallel类是System.Threading.Tasks命名空间中的一个重要类,它提供数据并行和任务并行的高级抽象。 For和ForEach Parallel类下的For和ForEach对应着普通的循环和遍历(普通的for和foreach),但执行时会尝试在多个线程上…...
基于EBAZ4205矿板的图像处理:12图像二值化(阈值可调)
基于EBAZ4205矿板的图像处理:12图像二值化(阈值可调) 我的项目是基于EBAZ4205矿板的阈值可调的图像阈值二值化处理,可以通过按键调整二值化的阈值,key1为阈值加1,key4为阈值减1,key2为阈值加10,key5为阈值…...
人大金仓数据库报com.kingbase8.util.KSQLException: 致命错误: 用户 “SYSTEM“ Password 认证失败
com.kingbase8.util.KSQLException: 致命错误: 用户 “SYSTEM” Password 认证失败 解决办法: 问题在于用户权限只不足,相关配置文件在一般在 /data/sys hba.conf,修改IPV4 local connections选项中的改为trust。...
文件加密软件哪个好?文件加密软件排行榜前十名(好用软件推荐)
文件加密软件哪个好?这是许多个人和企业用户在面临数据保护需求时所关心的问题。随着数字化时代的推进,数据安全问题日益凸显,文件加密软件成为了保护数据安全的重要手段。本文将为您介绍当前市场上排名前十的文件加密软件,帮助您…...
Netty的第一个简单Demo实现
目录 说明需求ClientServer写法总结 实现运行 说明 Netty 的一个练习,使用 Netty 连通 服务端 和 客户端,进行基本的通信。 需求 Client 连接服务端成功后,打印连接成功给服务端发送消息HelloServer Server 客户端连接成功后࿰…...
K8S 哲学 - 服务发现 services
apiVersion: v1 kind: Service metadata:name: deploy-servicelabels:app: deploy-service spec: ports: - port: 80targetPort: 80name: deploy-service-podselector: app: deploy-podtype: NodePort service 的 endPoint (ep) 主机端口分配方式 两…...
Springboot工程创建
目录 一、步骤 二、遇到的问题及解决方案 一、步骤 打开idea,点击文件 ->新建 ->新模块 选择Spring Initializr,并设置相关信息。其中组为域名,如果没有公司,可以默认com.example。点击下一步 蓝色方框部分需要去掉,软件包…...
日本站群服务器的优点以及适合该服务器的业务类型?
日本站群服务器的优点以及适合该服务器的业务类型? 日本站群服务器是指位于日本地区的多个网站共享同一台服务器的架构。这种服务器架构有着诸多优点,使其成为许多企业和网站管理员的首选。以下是日本站群服务器的优点以及适合该服务器的业务类型的分析࿱…...
堆的应用2——TOPK问题
TOPK问题 TOP-K问题:即求数据结合中前K个最大的元素或者最小的元素,一般情况下数据量都比较大。 比如:专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等。 情况1——数据量小 对于Top-K问题,能想到的最简单直接的方式就…...
leetcode-5. 最长回文子串
题目描述 给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba"…...
【Flask 系统教程 1】入门及配置
当你开始学习 Flask 时,了解如何进行基本的配置是非常重要的。Flask 是一个简单而灵活的 Python Web 框架,它允许你快速构建 Web 应用程序,并且易于学习。在这篇博客中,我将介绍如何从零开始进行 Flask 的基础配置,适合…...
石家庄河北银行的
有些时候河北石家庄这边的甲方客户人员就是太苛刻了,尤其是银行业 比如河北银行的信息部的卢斌,兰州人,这个人的人品极度恶劣,对乙方的外包人员特别苛刻,像个大爷一样。自己什么都不会,连sql 都不会写&…...
【CCNP ENCOR OCG】CHAPTER 2》Spanning Tree Protocol
目录 “Do I Know This Already?” Quiz Foundation Topics Spanning Tree Protocol Fundamentals 802.1D Port States Spanning Tree Path Cost Root Bridge Election Locating Root Ports Locating Blocked Designated Switch Ports Verification of VLANs on Trun…...
docker无法映射/挂载根目录
docker无法映射(挂载)根目录下的文件夹只能映射家目录 最近想要使用nas-tools做做刮削,电影存在一个机械磁盘里,机械磁盘被挂载到/data1下,发现一个很奇怪的问题,docker只能挂载成功home目录下的文件夹&am…...
C++中不要重新定义继承而来的non-virtual函数
在 C 中,重定义继承而来的 non-virtual(非虚)函数通常是不推荐的,原因如下: 隐藏父类的实现:如果在派生类中重定义了一个非虚函数,这将隐藏父类中具有相同名称和参数的函数。这意味着即使通过基…...
C++ 对象型参数和返回值
对象型参数和返回值 1.对象型类型作为函数的参数2.对象型参数作为函数的返回值 1.对象型类型作为函数的参数 使用对象类型作为函数的参数或者返回值,可能会产生一些不必要的中间对象 例子: // 使用对象类型作为函数的参数 void test1(Car car) {}完整代…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
