ASP.NET网页设计实例解说:.NET怎样会见MySQL数据库
说句实话,Java跨平台根本就不是外行人想想的那种,一次编译,处处运行。mysql|会见|数据|数据库 .NET的数据库自然撑持MSSQLServer,可是并不是其他数据库不撑持,而是微软基于本身好处必要,在撑持、营销上推本人的数据库产物;可是作为平台计谋,他并不是排挤其他数据库,而是参考java系统提出了一套数据库会见标准,让各个第三方举行开辟,供应特定的驱动。MySQL是收费的数据库,在本钱上具有没有可替换的上风,可是今朝来说,并没有供应。微软把MySQL看成ODBC数据库,能够依照ODBC.Net标准举行会见,详细参考
http://www.microsoft.com/china/community/Columns/Luyan/6.mspx
而实践上,针对ODBC。Net的必要设置DSN的贫苦,而是呈现了一个开源的体系MySQLDriverCS,对MySQL的开辟举行了封装,完成了.net情况下关于MySQL数据库体系的会见。
http://sourceforge.net/projects/mysqldrivercs/
经由过程浏览源代码,我们看到MySQLDriverCS的思绪是使用C函数的底层库来利用数据库的,一般供应对MySQL数据库的会见的数据库的CDLL是名为libmySQL.dll的驱动文件,MySQLDriverCS作为一个.net库举行封装C作风的驱动。
详细怎样举行呢?
翻开工程后,我们看到个中有一个对照特别的.cs文件CPrototypes.cs:
<P>#regionLICENSE/*MySQLDriverCS:AnC#driverforMySQL.Copyright(c)2002ManuelLucasViasLivschitz.ThisfileispartofMySQLDriverCS.MySQLDriverCSisfreesoftware;youcanredistributeitand/ormodifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedbytheFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyouroption)anylaterversion.MySQLDriverCSisdistributedinthehopethatitwillbeuseful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.SeetheGNUGeneralPublicLicenseformoredetails.YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealongwithMySQLDriverCS;ifnot,writetotheFreeSoftwareFoundation,Inc.,59TemplePlace,Suite330,Boston,MA02111-1307USA*/#endregionusingSystem;usingSystem.Data;usingSystem.Runtime.InteropServices;namespaceMySQLDriverCS{//publicclassMYSQL_FIELD_FACTORY{staticstringversion;publicstaticIMYSQL_FIELDGetInstance(){if(version==null){version=CPrototypes.GetClientInfo();}if(version.CompareTo("4.1.2-alpha")>=0){returnnewMYSQL_FIELD_VERSION_5();}elsereturnnewMYSQL_FIELD_VERSION_3();}}publicinterfaceIMYSQL_FIELD{stringName{get;}uintType{get;}longMax_Length{get;}}///<summary>///Fielddescriptor///</summary>//"3.23.32",4.0.1-alphainternalclassMYSQL_FIELD_VERSION_3:IMYSQL_FIELD{///<summary>///Nameofcolumn///</summary>publicstringname;///<summary>///Tableofcolumnifcolumnwasafield///</summary>publicstringtable;//publicstringorg_table;/*Orgtablenameiftablewasanalias*///publicstringdb;/*Databasefortable*////<summary>///def///</summary>publicstringdef;///<summary>///length///</summary>publiclonglength;///<summary>///max_length///</summary>publiclongmax_length;///<summary>///Divflags///</summary>publicuintflags;///<summary>///Numberofdecimalsinfield///</summary>publicuintdecimals;///<summary>///Typeoffield.Semysql_com.hfortypes///</summary>publicuinttype;///<summary>///Name///</summary>publicstringName{get{returnname;}}///<summary>///Type///</summary>publicuintType{get{returntype;}}///<summary>///Max_Length///</summary>publiclongMax_Length{get{returnmax_length;}}}///<summary>///Fielddescriptor///</summary>internalclassMYSQL_FIELD_VERSION_5:IMYSQL_FIELD{///<summary>///Nameofcolumn///</summary>publicstringname;///<summary>///Originalcolumnname,ifanalias///</summary>publicstringorg_name;///<summary>///Tableofcolumnifcolumnwasafield///</summary>publicstringtable;///<summary>///Orgtablenameiftablewasanalias///</summary>publicstringorg_table;///<summary>///Databasefortable///</summary>publicstringdb;///<summary>///Catalogfortable///</summary>//publicstringcatalog;///<summary>///def///</summary>publicstringdef;///<summary>///length///</summary>publiclonglength;///<summary>///max_length///</summary>publiclongmax_length;///<summary>///name_length///</summary>//publicuintname_length;///<summary>///org_name_length///</summary>publicuintorg_name_length;///<summary>///table_length///</summary>publicuinttable_length;///<summary>///org_table_length///</summary>publicuintorg_table_length;///<summary>///db_length///</summary>publicuintdb_length;///<summary>///catalog_length///</summary>publicuintcatalog_length;///<summary>///def_length///</summary>publicuintdef_length;///<summary>///Divflags///</summary>publicuintflags;///<summary>///Numberofdecimalsinfield///</summary>publicuintdecimals;///<summary>///Characterset///</summary>publicuintcharsetnr;///<summary>///Typeoffield.Semysql_com.hfortypes///</summary>publicuinttype;///<summary>///Name///</summary>publicstringName{get{returnname;}}///<summary>///Type///</summary>publicuintType{get{returntype;}}///<summary>///Max_Length///</summary>publiclongMax_Length{get{returnmax_length;}}}//publicenumenum_field_types{FIELD_TYPE_DECIMAL,FIELD_TYPE_TINY,FIELD_TYPE_SHORT,FIELD_TYPE_LONG,FIELD_TYPE_FLOAT,FIELD_TYPE_DOUBLE,FIELD_TYPE_NULL,FIELD_TYPE_TIMESTAMP,FIELD_TYPE_LONGLONG,FIELD_TYPE_INT24,FIELD_TYPE_DATE,FIELD_TYPE_TIME,FIELD_TYPE_DATETIME,FIELD_TYPE_YEAR,FIELD_TYPE_NEWDATE,FIELD_TYPE_ENUM=247,FIELD_TYPE_SET=248,FIELD_TYPE_TINY_BLOB=249,FIELD_TYPE_MEDIUM_BLOB=250,FIELD_TYPE_LONG_BLOB=251,FIELD_TYPE_BLOB=252,FIELD_TYPE_VAR_STRING=253,FIELD_TYPE_STRING=254,FIELD_TYPE_GEOMETRY=255};///<summary>///Cprototypeswarpperformysqllib.///</summary>internalclassCPrototypes{unsafepublicstaticexternvoid*mysql_init(void*must_be_null);unsafepublicstaticexternvoidmysql_close(void*handle);//BEGINADDITION2004-07-01BYAlexSeewald//Enablesustocallmysql_optiontoactivatecompressionandtimeoutunsafepublicstaticexternvoidmysql_options(void*mysql,uintoption,uint*value);//ENDADDITION2004-07-01ByAlexSeewaldunsafepublicstaticexternvoid*mysql_real_connect(void*mysql,stringhost,stringuser,stringpasswd,stringdb,uintport,stringunix_socket,intclient_flag);unsafepublicstaticexternintmysql_query(void*mysql,stringquery);unsafepublicstaticexternvoid*mysql_store_result(void*mysql);unsafepublicstaticexternvoidmysql_free_result(void*result);unsafepublicstaticexternuintmysql_errno(void*mysql);unsafepublicstaticexternstringmysql_error(void*mysql);unsafepublicstaticexternuintmysql_field_count(void*mysql);unsafepublicstaticexternulongmysql_affected_rows(void*mysql);unsafepublicstaticexternuintmysql_num_fields(void*result);unsafepublicstaticexternulongmysql_num_rows(void*result);unsafepublicstaticexternIntPtrmysql_fetch_field_direct(void*result,uintfieldnr);///<returns>Returnsastringthatrepresentstheclientlibraryversion</returns>publicstaticexternstringGetClientInfo();unsafepublicstaticexternIntPtrmysql_fetch_row(void*result);unsafepublicstaticexternintmysql_select_db(void*mysql,stringdbname);unsafepublicstaticexternUInt32*mysql_fetch_lengths(void*result);}}
基础上是将C作风的基本数据布局举行.net的从头界说,然后经由过程InteropServices举行会见。 详细怎样使用这个库举行操纵,能够参考个中的例子。在经过全球个人PC市场占有90%的微软对asp.net不断优化与整合后,asp.net与微软自身平台的动用上更加的高效,加上asp.net在应用上非常容易上手,相信asp.net仍会是最多客户选用的脚本语言,并会在未来几年继续领跑。 HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了. ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。 通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。 网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项! ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
页:
[1]