您目前的位置 : 首页 >> 米饭的卡路里 >> 正文

yy资深站长浅析六大推行技能打造新站日IP过千世界互联网大会

日期:2016-7-14(原创文章,禁止转载)

2008-12-04 15:12

来源:blogs

编辑:Googler【纠错】人评论

A-A+

怎样开淘宝店 站优化方法 创业如何取得投资

小米note顶配版评测

最新LOL活动

不想弄得太复杂,我仅仅演示实现 DataReader和DataSet,起个抛砖引玉的作用,也顾不得代码结构是不是优美、性能是不是良好,能够到达本文的目的便可。

为了方便大家亲自动手实践,数据库使用的是ACCESS,文章末尾有下载链接。实际项目中要使用SqlServer和ORACLE的话,把几个OleDb函数换个名字便可,怎样换就不用我多说了。

相同的功能,我用三种语言来实现,首先,给出贵州治疗癫痫病哪个医院好.NET的标准语言C#版本作为基本参照。

以下是C#版本:

main_l文件源码:

以下为援用的内容:using System;using ta;using eDb;using xt; public class main_cs:ge { OleDbDataReader dr; OleDbCommand cmd; DataSet ds; OleDbDataAdapter adp; OleDbConnection conn; StringBuilder connStr; public void Page_Load() { connStr = new StringBuilder(Provider=EDB.4.0;Data Source=); pend(pPath(b)); conn = new OleDbConnection(String()); cmd = new OleDbCommand(SELECT title FROM image_dataconn); en(); dr = ecuteReader(); while(ad()) { ite(dr[title]); } ose(); ose(); ds = new DataSet(); adp = new OleDbDataAdapter(SELECT title FROM image_dataconn); ll(ds); ite(bles[0].Rows[0][title]); } }

以下是C++版本:

在VisualStudio2003中创建C++.Net类库癫痫病的前期症状都有哪些呢,命名_dll,项目中援用ta、b、L生成_l文件,以下是主文件全部源码(其它那些头文件、资源文件甚么乱七八糟的统统不用理睬,当它们不存在):

以下为援用的内容:#include stdafx.h#include _dll.h#using #using #using #using using namespace System;;using namespace System::Xml;using namespace System::Web;using namespace System::Text;using namespace System::Data;using namespace System::Data::OleDb;public __gc class main : public System::Web::UI::Page{private: OleDbDataReader __gc* dr; OleDbCommand __gc* cmd; DataSet __gc* ds; OleDbDataAdapter __gc* adp; OleDbConnection __gc* conn; StringBuilder __gc* connStr;public: void Page_Load() { connStr = new StringBuilder(Provider=EDB.4.0;Data Source=); connStr-Append(HttpContext::Current-Server-MapPath(b)); conn = new OleDbConnection(connStr-ToString()); cmd = new OleDbCommand(SELECT title FROM image_dataconn); conn-Open(); dr = cmd-ExecuteReader(); while(dr-Read()) { Response-Write(dr-get_Item(title)); } dr-Close(); conn-Close(); ds = new DataSet(); adp = new OleDbDataAdapter(SELECT title FROM image_dataconn); adp-Fill(ds); Response-Write(ds-Tables-get_Item(0)-Rows-get_Item(0)-get_Item(title)); }};

以下是J#版本:

道理同C++,使用J#创建类库,命名main_jsl,项目中援用ta、b、L源码以下:

以下为援用的内容:import ta海南哪家医院可以治好癫痫.*;import eDb.*;import b.*;import xt.*;public class main_jsl extends ge{ OleDbDataReader dr; OleDbCommand cmd; DataSet ds; OleDbDataAdapter adp; OleDbConnection conn; StringBuilder connStr; public void Page_Load() { connStr = new StringBuilder(Provider=EDB.4.0;Data Source=); pend(get_Server().MapPath(b)); conn = new OleDbConnection(String()); cmd = new OleDbCommand(SELECT title FROM image_dataconn); en(); dr = ecuteReader(); while(ad()) { get_Response().Write(t_Item(title)); } ose(); ose(); ds = new DataSet(); adp = new OleDbDataAdapter(SELECT title FROM image_dataconn); ll(ds); get_Response().Write(t_Tables().get_Item(0).get_Rows().get_Item(0).get_Item(title)); }}

终了,DLL文件放置在站点根目录的Bin文件夹下面便可。

以上三个文件的功能完全是一样的。

通过以上3种代码的视察,我们可以发现,C#的代码相当简洁(其实能够写得最简洁的是下篇文章再说),J#其次,C++就比较难看了。

在DataTable和DataReader的操作上,可以看到J#和C++大量使用了get_Item()函数,我估计J#和C++都是经过Object变换的,可能会对性能造成少量的影响。

使用这两种语言创建,对习惯了C++和JAVA的朋友来讲,可能会比较有用。

我相信每种语言都有它的长处,大家相互扬长避短,构造一个良好的整体曾看到过很多C#的初学者,仿佛都对有偏见,以历来不用VB为光荣,还有一些朋友,对C++.Net和J#的了解比较少,便误解为这两种语言没有用处,实际上这些认识都是片面的。

我举个例子:

以下为援用的内容:/* Jscript

*/var conn = eateObject(nnection);en(Provider=EDB.4.0;Data Source=+pPath(b));var rs = ecute(SELECT * FROM image_data);while(!F){ite(rs(title).value);veNext();}ose();ose();

不用认为这只是ASP,这一样也是地地道道的。虽然在我们.NET开发者的眼中,RecordSet的名声可能没有DataReader要好,但是这不在本文的讨论范围,这里只说:倘若硬是要用C#实现以上相同功能的话,结果只能是 履行慢、代码长、结构复杂。

在.NET的世界里,没有哪一个语言最好、哪一个语言最烂的说法,五个语言各自有长处短处,大家生成的都是IL中间代码,也就是说,它们天生就可以相互融会,这才是.NET的精华之所在。

查看更多类似文章

友情链接:

弹无虚发网 | 影院装修 | 热气球是谁发明的 | 板栗剥壳机 | 黄色图片论坛 | 正版光盘如何复制 | 一年级口算题