ASP.NET网页编程之公布一个操纵oracle的c#类
归根到底,Java跨平台可以,但是要重新编写代码,否则还分什么J2EE/J2SE/J2ME呢!oracle/************************************************************************Module:OraHelper.cs
*Author:hellopj
*Purpose:DefinitionoftheClassOraHelper
***********************************************************************/usingSystem;
usingSystem.Data;
usingOracle.DataAccess.Client;
usingOracle.DataAccess.Types;
usingSystem.Collections;
usingSystem.Configuration;
namespaceOraHelper
{
publicabstractclassOraHelper
{
publicstaticreadonlystringCONN_STRING_NON_DTC=ConfigurationSettings.AppSettings["ConnStr"].Trim();
publicstaticOracleConnectionconn=newOracleConnection(CONN_STRING_NON_DTC);
publicstaticvoidOpenConnection()
{
if(conn.State!=ConnectionState.Open)
conn.Open();
}
publicstaticvoidCloseConnection()
{
if(conn.State==ConnectionState.Open)
conn.Close();
}
publicstaticDataSetgetDataSet(stringcmdText)
{
OracleDataAdapterAdapter=newOracleDataAdapter(cmdText,conn);
DataSetData=newDataSet();
Adapter.Fill(Data);
returnData;
}
publicstaticOracleDataReaderExecuteReader(stringcmdText)
{
OracleCommandcmd=newOracleCommand();
cmd.Connection=conn;
cmd.CommandText=cmdText;
OracleDataReaderrdr=cmd.ExecuteReader();
cmd.Parameters.Clear();
returnrdr;
}
publicstaticintExecuteNonQuery(stringcmdText)
{
try
{
OracleCommandcomm=newOracleCommand(cmdText,conn);
comm.ExecuteNonQuery();
return1;
}
catch
{
return0;
}
}
publicstaticvoidExecuteNonQuery(stringcmdText,OracleConnectionconn)
{
try
{
OracleCommandcomm=newOracleCommand(cmdText,conn);
comm.ExecuteNonQuery();
}
catch
{
}
}
publicstaticstringExecuteScalar(stringcmdText)
{
stringstatus="";
try
{
OracleCommandcomm=newOracleCommand(cmdText,conn);
status=comm.ExecuteScalar().ToString();
returnstatus;
}
catch(Exceptionerr)
{
//return"-1";
returnerr.Message.ToString();
}
}
privatestaticHashtableparmCache=Hashtable.Synchronized(newHashtable());
publicstaticintExecuteNonQuery(CommandTypecmdType,stringcmdText,paramsOracleParameter[]cmdParms)
{
OracleCommandcmd=newOracleCommand();
cmd.Connection=conn;
cmd.Parameters.Clear();
cmd.CommandText=cmdText;
foreach(OracleParameterparmincmdParms)
cmd.Parameters.Add(parm);
intval=cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
returnval;
}
publicstaticintExecuteNonQuery(OracleTransactiontrans,CommandTypecmdType,stringcmdText,paramsOracleParameter[]cmdParms)
{
OracleCommandcmd=newOracleCommand();
PrepareCommand(cmd,trans.Connection,trans,cmdType,cmdText,cmdParms);
intval=cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
returnval;
}
publicstaticOracleDataReaderExecuteReader(CommandTypecmdType,stringcmdText,paramsOracleParameter[]cmdParms)
{
OracleCommandcmd=newOracleCommand();
try
{
PrepareCommand(cmd,conn,null,cmdType,cmdText,cmdParms);
OracleDataReaderrdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
returnrdr;
}
catch(Exceptione)
{
conn.Close();
throwe;
}
}
publicstaticobjectExecuteScalar(stringconnString,CommandTypecmdType,stringcmdText,paramsOracleParameter[]cmdParms)
{
OracleCommandcmd=newOracleCommand();
PrepareCommand(cmd,conn,null,cmdType,cmdText,cmdParms);
objectval=cmd.ExecuteScalar();
cmd.Parameters.Clear();
returnval;
}
publicstaticobjectExecuteScalar(CommandTypecmdType,stringcmdText,paramsOracleParameter[]cmdParms)
{
OracleCommandcmd=newOracleCommand();
PrepareCommand(cmd,conn,null,cmdType,cmdText,cmdParms);
objectval=cmd.ExecuteScalar();
cmd.Parameters.Clear();
returnval;
}
publicstaticintgetScalar(CommandTypecmdType,stringcmdText,paramsOracleParameter[]cmdParms)
{
OracleCommandcmd=newOracleCommand();
PrepareCommand(cmd,conn,null,cmdType,cmdText,cmdParms);
objectval=cmd.ExecuteScalar();
cmd.Parameters.Clear();
intnVal=Convert.ToInt32(val);
returnnVal;
}
publicstaticvoidCacheParameters(stringcacheKey,paramsOracleParameter[]cmdParms)
{
parmCache=cmdParms;
}
publicstaticOracleParameter[]GetCachedParameters(stringcacheKey)
{
OracleParameter[]cachedParms=(OracleParameter[])parmCache;
if(cachedParms==null)
returnnull;
OracleParameter[]clonedParms=newOracleParameter;
for(inti=0,j=cachedParms.Length;i<j;i++)
clonedParms=(OracleParameter)((ICloneable)cachedParms).Clone();
returnclonedParms;
}
privatestaticvoidPrepareCommand(OracleCommandcmd,OracleConnectionconn,OracleTransactiontrans,CommandTypecmdType,stringcmdText,OracleParameter[]cmdParms)
{
if(conn.State!=ConnectionState.Open)
conn.Open();
cmd.Connection=conn;
cmd.CommandText=cmdText;
cmd.CommandType=cmdType;
//if(trans!=null)
//cmd.Transaction=trans;
if(cmdParms!=null)
{
foreach(OracleParameterparmincmdParms)
cmd.Parameters.Add(parm);
}
}
publicstaticintGetID(stringSeqName)//失掉序列的nextval
{
OracleCommandcmd=newOracleCommand();
using(OracleConnectionconn=newOracleConnection(CONN_STRING_NON_DTC))
{
stringSqlText="select"+SeqName+".nextvalfromdual";
PrepareCommand(cmd,conn,null,CommandType.Text,SqlText,null);
intval=Convert.ToInt32(cmd.ExecuteScalar());
cmd.Parameters.Clear();
returnval;
}
}
}
}
我有个同学,他是搞Java的,他给我说“Java不是效率低,而是速度慢。”,我不是搞Java的,我实在想不透这句话的含义,难道执行速度不就是效率低吗?难道执行速度慢还成效率高了? 目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案. 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。 最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。 现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。 主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。 大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。
页:
[1]