可以按分布式C/S或B/S结构进行开发,只要处理好数据库事务,一般不会弄错的。
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站制作、做网站、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的关岭网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
VBA过时了,不过处理简单的问题还可以,毕竟上手快。但是,处理简单问题,Vlisp应该更有优势,建议不用vba.
.net下,访问块表必须以事物处理的方式打开。这是强制规定,不这么做代码会报错的。所以,在.net中你是无法按照VBA的方式来做的。
至于数据库呢,autocad所有图元都存放在数据库里,就像thisdrawing.modelspace,这里的模型空间只是数据库里的一个块表记录。这些基础知识,在教程里应该都有很详细的描述。所以好处么,.net对autocad的控制,处理更加灵活多变,更加自由。但是要掌握的内容比VBA多得多。但相对C++还是简单的。
1. 什么是类和对象?
答:类包含某一类对象的数据和过程。对象是类的实例。
2. 为什么采用类和对象进行程序设计?
答:以便按照对象定义类,提高程序代码的可重用性,避免重复劳动。
3. 在同一个类中,应当包括哪些对象的属性和方法?
答:同一类对象的数据和过程。
4. VB程序设计主要包括哪两个方面的内容?
答:Windows应用程序界面和代码。
5. 什么是事件驱动?
答:根据事件转去执行相应的事件处理过程。
1. 控件是窗体上的 对象 。
2. Visual Basic具有 BASIC程序语言简单易学的 优点,新增了 可视化和面向面向对象程序设计的 热点,是 Windows编程人员广泛使用的编程 工具。
3. 对象的 属性 是在其类中定义的数据。
4. 对象的 方法 是在其类中定义的过程。
5. 对象本身的动作或功能称为 方法 ,外界施加于某对象的动作或操作称为 事件 。
1.面向过程
是指从功能的角度分析问题,将待解决的问题空间分解成若干个功能模块,每个功能模块描述一个操作的具体过程。
2.面向过程程序设计
主要是根据事务本身的逻辑过程进行编程的一种方法。
3.面向对象程序设计
是一种计算机编程架构,是由单个能够起到子程序作用的单元或对象组合而成。即按照对象编写程序。
4.事件驱动程序设计
是一种电脑程式设计模型。这种模型的程式执行流程是由使用者的动作或者是由其他程式的讯息来决定的。
5.函数
是一种特定的运算,在程序中使用一个函数时,只要给出函数名并给出一个或多个参数,就能得到它的函数值
6.过程
是程序中可以执行的一段代码,过程包含在一个声明语句和一个结束语句之间
7.类
是所有具有共同特征的事物的抽象,是一个抽象的概念(类是一组具有相同属性特征的对象的抽象描述,是面向对象程序设计的又一个核心概念或者类是对一组对象共同具有的属性和行为的抽象,具有封装和隐藏性、还具有继承性)。
8.对象
是一个属性集合及其操作的封装体(对象是用来描述现实世界中客体的部件,是面向对象软件系统在运行时刻的基本单位)。
类是对象的抽象,对象是类的实例。
9.事件
窗体或控件识别的动作
10.事件驱动
根据事件转去执行相应的事件处理过程。
11.属性
是一个对象的特性,不同的对象有不同的属性
12.算法
指解决某个问题的严格方法,描述有始有终的计算过程。
5.属性窗口中属性值被设置的方式有哪几种?
6种:输入 选取 浏览 赋值 默认 拖动
1.程序代码是由一行一行的 语句 所组成。
3.在程序代码中可将一个语句分成两段的特殊符号为( _ )。
5.数值变量如果没有设置初值,则内定值为 0 。
7.如果有一个变量,可能会存放数值数据或字符串数据,此时可以声明该变量为 对象变量。
9. Integer数据类型占 4 bytes的内存空间,可以表示的数值范围为 -2,147,483,648~2,147,483,647 的整数
3.VB.NET程序语言数据类型的种类有哪些?
(1)数值型
①整形数:短整形(Short)、整形(Integer)、长整型(Long)
②字节型(Byte)
③实型数:单精度型(Single)、双精度型(Double)
④货币型(Decimal)
(2)字符型(Char)和字符串型(String)
(3)逻辑型/布尔型(Boolean)
(4)日期型(Date)
(5)对象型(Object)[即可变型(Variant)]
1.局部变量、全局变量、跨模块变量分别在何处声明?其生存期分别是多少?
局部变量在程序内声明。生存期为从所在的程序运行开始到程序结束。
全局变量在窗体内所有程序的外边声明。生存期为由该变量声明开始,一直到程序退出运行为止。
跨模块变量在一般模块的声明区用Public来声明。生存期为从一个Windows应用程序项目文件开始运行到结束。
3.什么是静态变量?
静态变量是在离开程序时能够继续保留目前的值,待下回进入该程序时能够继续保留的变量值的局部变量,用Static关键字声明。
(一)问答题
1.请简单说明在程序中使用程序的好处。
(1)程序可以重复使用,以方便维护与程序调试。
(2)程序可以让其他工程或项目使用。
(3)程序的逻辑简单、明确,可以让程序变得简单且可读性高。
(4)程序具有模块化的功能,因此可以将一个大的应用程序分成数个小的且不同功能的程序,让不同的程序设计师分别编写独立不同功能的程序,并以团队开发,加快应用程序开发的时间。
3.试比较传值调用与传址调用的差异。
(1)声明方式不同:
传值——在程序中的虚自变量之前加上ByVal
传址——在程序中的虚自变量之前加上ByRef
(2)占用内存不同
传值——调用程序的实自变量与被调用程序的虚自变量占用不同内存
传址——调用程序的实自变量与被调用程序的虚自变量占用同一地址的内存,也就是说,在做参数传递时,调用程序中的实自变量是将自己本身的内存地址传给被调用程序的虚自变量
(3)虚自变量更改结果不同
传值——使用传值调用可以防止变量被程序修改
传址——被调用程序可以通过虚自变量将值传回给调用程序
5.什么是程序多载?
程序多载是使用不同的自变量串行或数据类型来加以区分相同名称的程序。
□ 本刊记者 王海滨│文
2012年,尽管股市、楼市在这一年的投资不尽如人意,但银行理财产品仍不乏可圈可点之处,银行理财产品平均预期年化收益率近5%,股份制商行成为发行主力。
收益近5%
特别是各个银行相继推出一些跨年产品,让一度低迷的理财市场重新热闹起来。现在很多热销的期限在150天左右的理财产品收益率基本站上了5%,而此前这类期限的产品收益率仅在4.3%左右,跨年银行理财品的确“5”动人心。
工行北京分行个金部某负责表示,2012年银行理财产品已经逐步从投资单一金融产品转向组合类产品,其中,银行理财产品中的组合投资类产品占比过半,从银行理财产品的发行主体来看,股份制商业银行仍然是主力军,而银行理财产品也表现出了量价齐增的现象。在股市、楼市低迷的情况下,银行理财品表现出了稳定和增值的本色。从相关数据看,预计银行类理财产品平均年化收益率将近5%。同时,由于近几年各银行都把发行理财产品当做重要的利润增长点,因此产品线极大丰富,营销手段、营销方式和投资管理等方面也不断创新和日趋完善。
虽然每家银行策略不同,但是无论哪家银行,在年末岁初都是揽储的冲刺和开局阶段。所以到了这个时间,传统的银行理财产品也因此迎来了旺季。为了能在揽储大战中多一份胜算,各银行纷纷提高理财产品的收益率也是理所当然。
并非储蓄
银行理财品也不是绝对的零风险、稳收益。12月以来,已经曝出多起理财产品兑付风波事件,银行和投资者都应从中吸取经验教训。私售理财产品事件有太多的相似,虽然涉事的只是个别银行,但对于其他银行也并非高枕无忧,此类事件给银行内部管理机制敲响了警钟。随着近几年信贷量和营业网点双重扩张暴露的风险也越来越多。银行忙于高速扩张却缺少精耕细作,私售事件几乎都是发生在基层网点,暴露出银行疏于对基层员工的管理。
而对于投资者,重要的是提高风险意识,应当知道理财产品并非存款,高收益的背后必然是高风险。从购买理财产品的那刻起,就要有能赚能亏的心理准备。我国大多数的投资者还不具备基本的金融常识,往往容易受骗上当。为避免被私售事件发生,投资者应当坚持在网点内完成所有签约手续,认清协议中银行扮演什么样的角色承担什么样的责任,绝不能听信客户经理的口头承诺,只有落实到书面的东西才有法律效力。
钱景乐观
对于已经到来的2013年,理财产品收益是否会有所提升,怎样才能规避投资风险,成为投资者首要考虑的问题。对此,接受本刊记者采访的银行相关人士表示,今年市场对银行理财产品的需求仍然较高,银行对理财产品市场持乐观态度,产品发行量和收益率圴会有小幅稳增长。
2013年理财,对于稳健的投资者而言,继续在银行长期理财品中寻取固定收益应该是不错的选择。而对于普通投资者,因为财政悬崖悬而未决,挂钩汇率的理财产品还是少碰为妙。对于挂靠大宗商品的理财产品来说,由于美元的颓势,以黄金(1657.90,-16.70,-1.00%)为主的贵金属投资市场,将继续延续2012年的牛市,因此这类产品的投资仍存在一定的利润空间。此外,挂钩酒类及艺术品等另类理财产品在标的物遭到爆炒和爆料之后会继续回归理性,这会拉低国内另类理财市场的价格波动幅度,投资者应
事务处理是在数据处理时经常遇到的问题,经常用到的方法有以下3种总结整理如下:
方法1:直接写入到sql 中
在存储过程中使用 BEGIN TRANS, COMMIT TRANS, ROLLBACK TRANS 实现
begin trans
declare @orderDetailsError int,@procuntError int
delete from [order details] where productid=42
select @orderDetailsError =@@error
delete from products where productid=42
select @procuntError=@@error
if(@orderDetailsError =0 and @procuntError=0)
COMMIT TRANS
else
ROLLBACK TRANS
优点:
所有事务逻辑包含在一个单独的调用中
拥有运行一个事务的最佳性能
独立于应用程序
限制:
事务上下文仅存在于数据库调用中
数据库代码与数据库系统有关
方法2 :使用ADO.NET 实现
使用ADO.NET 实现,使用这种方式的优点是可以在中间层来管理事务,当然你也可以选择在数据层来实现。
SqlConnection 和OleDbConnection 对象有一个 BeginTransaction 方法,它可以返回 SqlTransaction
或者OleDbTransaction 对象。而且这个对象有 Commit 和 Rollback 方法来管理事务
SqlConnection sqlConnection = new SqlConnection("workstation id=WEIXIAOPING;packet size=4096;user id=sa;initial catalog=Northwind;persist security info=False");
sqlConnection.Open();
SqlTransaction myTrans = sqlConnection.BeginTransaction();
SqlCommand sqlInsertCommand = new SqlCommand();
sqlInsertCommand.Connection = sqlConnection
sqlInsertCommand.Transaction=myTrans;
try{
sqlInsertCommand.CommandText="insert into tbTree(Context,ParentID) values('北京',1)";
sqlInsertCommand.ExecuteNonQuery();
sqlInsertCommand.CommandText="insert into tbTree(Context,ParentID) values('上海',1)";
sqlInsertCommand.ExecuteNonQuery();
myTrans.Commit();
}catch(Exception ex)
{
myTrans.Rollback();
}
finally
{
sqlConnection.Close();
}
优点:
简单性
和数据据事务差不多的快
独立于数据库,不同数据库的专有代码被隐藏了
缺点:
事务不能跨越多个数据库连接
事务执行在数据库连接层上,所以需要在事务过程中维护一个数据库连接
ADO.NET分布事务也可以跨越多个数据库,但是其中一个SQL SERVER 数据库的话,通过用SQL SERVER连接服务器连接到别的数据库,但是如果是在DB2和Orcal之间就不可以。
以上两种事务是经常用到的事务处理方法。
方法3 COM+事务(分布式事务)
.NET Framework 依靠 MTS/COM+ 服务来支持自动事务。COM+ 使用 Microsoft Distributed Transaction Coordinator (DTC) 作为事务管理器和事务协调器在分布式环境中运行事务。
这样可使 .NET 应用程序运行跨多个资源结合不同操作(例如,将定单插入 SQL Server 数据库、将消息写入 Microsoft 消息队列 (MSMQ) 队列、以及从 Oracle 数据库检索数据)
的事务。
COM+事务处理的类必须继承System.EnterpriseServices.ServicedComponent,其实web service就是继承System.EnterpriseServices.ServicedComponent,所以web service也支持
COM+事务。
定义一个COM+事务处理的类
[Transaction(TransactionOption.Required)]
public class DataAccess:System.EnterpriseServices.ServicedComponent
{
}
TransactionOption枚举类型支持5个COM+值(Disabled,NotSupported,Required,RequiresNew,Supported)
Disabled 忽略当前上下文中的任何事务。
NotSupported 使用非受控事务在上下文中创建组件。
Required 如果事务存在则共享事务,并且如有必要则创建新事务。
RequiresNew 使用新事务创建组件,而与当前上下文的状态无关。
Supported 如果事务存在,则共享该事务。
一般来说COM+中的组件需要Required 或Supported。当组件用于记录或查帐时RequiresNew 很有用,因为组件应该与活动中其他事务处理的提交或回滚隔离开来。
派生类可以重载基类的任意属性。如DataAccess选用Required,派生类仍然可以重载并指定RequiresNew或其他值。
COM+事务有手动处理和自动处理,自动处理就是在所需要自动处理的方法前加上[AutoComplete],根据方法的正常或抛出异常决定提交或回滚。
手动处理就是调用ContextUtil类中EnableCommit,SetComplete,SetAbort方法。
public string testTransaction()
{
try
{
ContextUtil.EnableCommit();
InsertARecord1();
InsertARecord2();
ContextUtil.SetComplete();
return "succeed!";
}
catch(Exception ex)
{
ContextUtil.SetAbort();
return "failed!";
}
}
public void InsertARecord1()
{
string strconn="workstation id=WEIXIAOPING;packet size=4096;user id=sa;initial catalog=Northwind;persist security info=False";
SqlConnection conn=new SqlConnection(strconn);
conn.Open();
SqlCommand command=new SqlCommand("insert into tbTree(Context,ParentID) values('北京',1)",conn);
command.ExecuteNonQuery();
conn.Close();
}
public void InsertARecord2()
{
string strconn="workstation id=WEIXIAOPING;packet size=4096;user id=sa;initial catalog=Northwind;persist security info=False";
SqlConnection conn=new SqlConnection(strconn);
conn.Open();
SqlCommand command=new SqlCommand("insert into tbTree(Context,ParentID) values('上海',1)",conn);
command.ExecuteNonQuery();
conn.Close();
}
在需要事务跨 MSMQ 和其他可识别事务的资源(例如,SQL Server 数据库)运行的系统中,只能使用 DTC 或 COM+ 事务,除此之外没有其他选择。DTC 协调参与分布式事务的所有资源管理器, 也管理与事务相关的操作。
这种做法的缺点是,由于存在 DTC 和 COM 互操作性开销,导致性能降低。
COM+事务处理的类必须强命名。
1、vb和vf有区别:
vb是一个综合性的相对比较容易上手的程序设计语言,几乎可以编制计算机在实际应用中的大多数程序,包括数据库应用、网络应用等等,但规模不宜大。
vf是一个专门的应用于特定方面即处理桌面数据库的编程系统,也就是单机版的数据处理软件,上世纪八、九十年代盛极一时,它操作自己专门的数据库,有自己专门的数据操作语言,速度快,但处理其它方面的能力如网络方面就很低,另外数据库领域用得最多的sql,即结构化查询语言它也是在后续的高版本才开始引入,显得有点“不合群”。
2、学vb有用吗?我个人认为是有用的,如果你是搞与计算机应用联系较紧密的工作,那可以编点小程序解决实际问题,你会变得“专业”味,如果你从事的就是IT行业,那vb的后续版本vb.net那是非常强大,如果继续边学边用,也不错;如果你做文字工作,那vb的一个分支vba在word、excel等Office中用起来,你会成为办公室电子事务处理高手的。
所以在vb和vf中能选择的话,尽量学vb。