ava程序员的第一次VB.NET开发
1.确定流程思路
最近被迫进行了一次VB.NET开发。作为一次痛苦的回忆,有必要记录下来。
项目是一个报表改造项目,客户提供了旧项目的水晶报表RPT模板文件和新项目的SQL语句。
以前光玩Java和RoR了,从来没有接触过.net.
经过请教后,制定了大概的思路与方向.
读取数据源->转变成自定义DateTable->和水晶报表绑定
因为由于本次项目连接的是Oracle,采用了OLDDB.NET的方式,所以需要安装Oracle的驱动包(100多兆呢),但由于因为最终要做成WebForm形式,所以希望的依赖包相对要求精简一些,就调整了一下项目结构,追加了WebService方式。
最终结构如下
2.关键处代码
调用WebService代码
view plaincopy to clipboardprint?
'创建报表
Dim report As rpt_report1 = New rpt_report_1
'获取远程接口
Dim client As ServiceReferenceQuery.ServiceSoapClient = New ServiceReferenceQuery.ServiceSoapClient
'调用远程接口,id和参数
Dim s As String = client.Query(Common.rpt_report1, DataFormatter.SerializeList(Me.Params))
'获取查询结构,也就是自定义DateTable
report.SetDataSource(DataFormatter.DeserializeDataTable(s))
'与水晶报表模板绑定
MdiStaffCrpViewer.ReportSource = report
序列化问题: 我一开始考虑WebService传递数据最好是序列化DataTable,一查,新版果然支持。一用,序列化后没有列头信息,只有数据。这样不行,无法进行数据绑定。具体原因没有查出来。
只好自己弄了一个序列化的函数,最后还要在客户端反一下.
大数据量问题:由于是报表,所以可能存在数据量过大的问题,google 了一下,一般方案是进行数据zip一下。由于介绍采用的是c#调用第三方zip库的原因,本次项目就没有进一步优化。
DataTableName问题:序列化之前不设置TableName,会有错误提示的.
创建自定义DateTable代码
view plaincopy to clipboardprint?
Dim TargetDs As DataTable = New DataTable
With TargetDs.Columns
.Add("s61_1", GetType(String))
.Add("s61_2", GetType(String))
.Add("s61_3", GetType(String))
.Add("s61_4", GetType(String))
.Add("s61_5", GetType(String))
End With
类型定义: 由于客户只提供了SQL语句,无法判定字段据具体类型, 只好采用无敌的String了。但个别字段在水晶报表中要参与运算必须设置成Integer,否则会保存。
数据检索:
1.和Java不同的是不光有connectionString还有一个Provider。刚转过来,不太了解其作用。
2.Oracle连接设置的话,需要建立一个alias,在oracle\product\10.1.0\Client_1\network\ADMIN\TNSNAMES.ORA,alias包括SERVICE_NAME/Service/Port,在connectionString中包含UserName,Pass,ailas.
3.连接Oracle的话用OleDbConnection/OleDbCommand/OleDbDataAdapter。
其他的也和Java差不多啦。
中间使用的时候查询了不少资料,关键点也就这几句话了。
水晶报表
因为这次是维护项目,没有新建报表的任务,也就不知道新建的具体流程了。说点知道的。
1.客户给的报表在设计期间可以预览。 并且有真实数据。第一次看到以为连接到了客户数据库上,大骂MS安全性太差,可是怎么也没有找到数据库链接......,后来才知道原来是缓存数据,可是缓存在哪里?
2.客户报表有的是一个报表对应多张表(一个DataSet多个DataTable),而新的SQL一般都是输出一个DataTable,只好修改报表数据源,n合1,然后才对上DataTable。
3.报表可以自己进行一些统计/分组,SQL文也可以实现相关功能。具体谁好,不太清楚,有经验的兄弟告知一下。
最后总结
1. 水晶报表确实很强大。
2. WebService第一次接触感觉不错。
3. vb.net语言太烂,没有存在的必要。
4. vs2008速度挺快,功能一般般。装个sp1比安装还慢。
5. WebForm思路不错,单机程序开发模式,Web发布方式。
- 大小: 47.5 KB
分享到:
相关推荐
同时,这些源代码可能涉及到多种编程语言,如Java、C++、Python或VB.NET等,反映出2005年主流的编程环境。 其次,“电脑教育”标签意味着杂志可能有专门的文章讨论如何更有效地进行计算机科学教学,包括教育方法、...
首先,一个常见的误区是认为.NET程序在第二次运行时会比第一次运行更快。这种观点可能是由于误解了.NET的即时编译(JIT)机制。实际上,每次.NET程序运行时,中间语言(IL)代码都需要被翻译成本地代码,这个过程在...
- **对比VB6**:C#不仅保持了VB.NET的便利特性,还具备更好的可移植性。 #### 五、五子棋程序开发体验 - **实习成果**:通过本次实习,作者实现了基于VB的五子棋程序,尽管没有实现人工智能部分,但已成功完成了一...
当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。 QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
它在第一次访问该类型的任何静态成员之前自动调用,且每个类型仅执行一次。与实例构造函数不同,静态构造方法没有参数并且总是私有的。 3. **Strings=new String("xyz"); 创建了几个 String Object?** - 这行代码...
这个二次开发包是专为程序员设计的,用于利用这种技术集成到自己的应用程序中。以下是一些关于短信猫(Modem GSM)二次开发的知识点: 1. **短信猫的工作原理**:短信猫实质上是一个内置GSM调制解调器的硬件设备,...
当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。 QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。 QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证...
总的来说,【VB绩效评价管理系统设计】项目是一次综合性的实践,涵盖了软件工程的整个生命周期,包括需求分析、设计、编码、测试和维护。通过这个项目,学生不仅能掌握VB编程技能,还能了解系统开发的整体流程,对...
当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。 QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证...
虽然相比现代语言,VB.NET在构建网络服务方面可能略显复杂,但它仍然是Windows平台上的一个选择。 4. **C++**:C++提供了多种库来实现HTTP代理服务器,如Poco库、libcurl、Boost.Asio等。C++的面向对象特性允许...
Java以其“一次编写,到处运行”的特性闻名。 - **C#**: 由Microsoft设计的一种现代编程语言,主要用于.NET框架中的应用程序开发。C#结合了C++的强大特性和VB.NET的简单性,是Windows平台下开发的首选语言之一。 - *...
第一章 .NET 编 编 编程语言 程语言编程语言 程语言 C#.4 1.1 Microsoft.NET——一场新的革命.4 1.2 .NET 与 C#.6 1.3 C#语言的特点.8 1.4 小 结 .11 第二章 运行环境 全面了解.NET.12 2.1 .NET ...
)专为.NET设计的一门语言,号称“C/C++家族中第一种面向组件的语言”。很多人觉得它应该像C或者C++,但事实上它更像是java的一个clone,所以作为入门,读一下清华大学出版社出版的《Java 语言与面向对象程序设计》...
7. **Java SMS编程**:Java版本的API适用于跨平台应用开发,因为Java有“一次编写,到处运行”的特性。开发者可以使用Java的Socket编程或者第三方库如SMSSender,实现GSM短信服务。 8. **其他文件**:“smsdp”和...
22. TCP三次握手:第一次握手是客户端向服务器端发出连接请求。 23. E-mail地址格式:Yangfan@263.net.cn是一个符合E-mail地址格式的邮箱。 24. 查询设计视图:在查询设计视图中,可以添加数据库表和已有的查询。 ...
第一单元:国际3S最新技术--3S一体化最新应用与遥感最新理论与应用: 1、3S一体化在城镇土地定级中应用 主讲人:GIS硕士、南京路川公司专业技术开发工程师 2、遥感理论与遥感最新技术开发:介绍遥感理论及一种先进的...