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) {}完整代…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果