问题描述
我用oledb连接数据库使用这样的代码:stringconnstring="Provider=microsoft.jet.oledb.4.0;datasource=c:\school.mdb";OleDbConnectionOleDbConnection1=newOleDbConnection(connstring);连接数据库,这段代码写在哪(在网页中写在page_load事件中)?我可以在其他窗体中只需要写OleDbConnection1.Open();就能打开数据库连接了?谢谢各位大侠了。
解决方案
解决方案二:
自已建立一个新的类,连接数据库时继承此类即可.
解决方案三:
1楼正解
解决方案四:
这就是所谓的多层架构里的数据链接层DLL了.在某一个类里把连接数据库的方法封装,当然还有其他一些数据库操作的类都可以封起来.用的时候只要调用就可以.
解决方案五:
publicstaticclassDbConnect{privateconststringm_strConnString="Provider=microsoft.jet.oledb.4.0;datasource=c:\school.mdb";publicstaticOleDbConnectionGetConnection(){returnnewOleDbConnection(m_strConnString);}}protectedvoidPage_Load(objectsender,EventArgse){OleDbConnectionconn=DbConnect.GetConnection();conn.Open();}如果只是达到楼主要求的功能的话,这样就可以了,但是这么做会把数据库的操作都放到表现层,未体现出分层的概念。
解决方案六:
我觉得用工具类比用基类的方法好一些吧.
解决方案七:
4楼的就可以了。
解决方案八:
你看看PETSHOP先你的软件不是一个好的面向对象的软件。不要把数据层和表现层放在一起。
解决方案九:
namespacePetShop.DBUtility{///<summary>///TheSqlHelperclassisintendedtoencapsulatehighperformance,///scalablebestpracticesforcommonusesofSqlClient.///</summary>publicabstractclassSqlHelper{//DatabaseconnectionstringspublicstaticreadonlystringConnectionStringLocalTransaction=ConfigurationManager.ConnectionStrings["SQLConnString1"].ConnectionString;publicstaticreadonlystringConnectionStringInventoryDistributedTransaction=ConfigurationManager.ConnectionStrings["SQLConnString2"].ConnectionString;publicstaticreadonlystringConnectionStringOrderDistributedTransaction=ConfigurationManager.ConnectionStrings["SQLConnString3"].ConnectionString;publicstaticreadonlystringConnectionStringProfile=ConfigurationManager.ConnectionStrings["SQLProfileConnString"].ConnectionString;//HashtabletostorecachedparametersprivatestaticHashtableparmCache=Hashtable.Synchronized(newHashtable());///<summary>///ExecuteaSqlCommand(thatreturnsnoresultset)againstthedatabasespecifiedintheconnectionstring///usingtheprovidedparameters.///</summary>///<remarks>///e.g.:///intresult=ExecuteNonQuery(connString,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));///</remarks>///<paramname="connectionString">avalidconnectionstringforaSqlConnection</param>///<paramname="commandType">theCommandType(storedprocedure,text,etc.)</param>///<paramname="commandText">thestoredprocedurenameorT-SQLcommand</param>///<paramname="commandParameters">anarrayofSqlParamtersusedtoexecutethecommand</param>///<returns>anintrepresentingthenumberofrowsaffectedbythecommand</returns>publicstaticintExecuteNonQuery(stringconnectionString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters){SqlCommandcmd=newSqlCommand();using(SqlConnectionconn=newSqlConnection(connectionString)){PrepareCommand(cmd,conn,null,cmdType,cmdText,commandParameters);intval=cmd.ExecuteNonQuery();cmd.Parameters.Clear();returnval;}}///<summary>///ExecuteaSqlCommand(thatreturnsnoresultset)againstanexistingdatabaseconnection///usingtheprovidedparameters.///</summary>///<remarks>///e.g.:///intresult=ExecuteNonQuery(connString,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));///</remarks>///<paramname="conn">anexistingdatabaseconnection</param>///<paramname="commandType">theCommandType(storedprocedure,text,etc.)</param>///<paramname="commandText">thestoredprocedurenameorT-SQLcommand</param>///<paramname="commandParameters">anarrayofSqlParamtersusedtoexecutethecommand</param>///<returns>anintrepresentingthenumberofrowsaffectedbythecommand</returns>publicstaticintExecuteNonQuery(SqlConnectionconnection,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters){SqlCommandcmd=newSqlCommand();PrepareCommand(cmd,connection,null,cmdType,cmdText,commandParameters);intval=cmd.ExecuteNonQuery();cmd.Parameters.Clear();returnval;}///<summary>///ExecuteaSqlCommand(thatreturnsnoresultset)usinganexistingSQLTransaction///usingtheprovidedparameters.///</summary>///<remarks>///e.g.:///intresult=ExecuteNonQuery(connString,CommandType.StoredProcedure,"PublishOrders",newSqlParameter("@prodid",24));///</remarks>///<paramname="trans">anexistingsqltransaction</param>///<paramname="commandType">theCommandType(storedprocedure,text,etc.)</param>///<paramname="commandText">thestoredprocedurenameorT-SQLcommand</param>///<paramname="commandParameters">anarrayofSqlParamtersusedtoexecutethecommand</param>///<returns>anintrepresentingthenumberofrowsaffectedbythecommand</returns>publicstaticintExecuteNonQuery(SqlTransactiontrans,CommandTypecmdType,stringcmdText,paramsSqlParameter[]commandParameters){SqlCommandcmd=newSqlCommand();PrepareCommand(cmd,trans.Connection,trans,cmdType,cmdText,commandParameters);intval=cmd.ExecuteNonQuery();cmd.Parameters.Clear();returnval;}看看高手的对你有帮助他用WEB.CONFIG的读取
解决方案十:
- -看看我的资源里有用Access做的东西。里面有源码。
解决方案十一:
楼上的都已经回答了,自己写一个类,把数据库相关的操作封装好。以后需要的时候,直接调用就行了。classDB{privateboolDBIsAlive;publicSqlConnectionConn1;publicSqlCommandCmd1;publicSqlDataReadersdr;publicstringErrMsg;publicstringDBLocation,DBName,DBUser,DBPaswd;privatestringcon_str;privateintConnectDB(){intreuslt=1;//·µ»ØÖµif(DBLocation==""||DBName==""||DBUser==""||DBPaswd=="")return-1;stringConStr="uid="+DBUser+";password="+DBPaswd+";database="+DBName+";server="+DBLocation;Conn1=newSqlConnection();Conn1.ConnectionString=ConStr;con_str=ConStr;try{Conn1.Open();DBIsAlive=true;}catch(Exceptionee){Conn1.Close();DBIsAlive=false;ErrMsg=ee.Message;reuslt=-2;//Êý¾Ý¿âÁ¬½Óʧ°Ü}returnreuslt;}privateintDisconnectDB(){intresult=1;if(DBIsAlive){try{Conn1.Close();//Conn1.Dispose();}catch(Exceptionee){ErrMsg=ee.Message;result=-3;//Êý¾Ý¿â¶Ï¿ªÊ§°Ü}}else{try{//Conn1.Dispose();Conn1.Close();}catch(Exceptionee){result=-3;ErrMsg=ee.Message;}}returnresult;}publicboolDB_Content_Test(){boolresult=false;if(ConnectDB()==1)result=true;if(DisconnectDB()!=1)result=false;returnresult;}publicSqlDataReaderSelectDetial(stringcommand){if(command!=null){ConnectDB();Cmd1=newSqlCommand();Cmd1.CommandText=command;Cmd1.Connection=Conn1;sdr=Cmd1.ExecuteReader();}returnsdr;}publicvoidUpdateDetial(stringcommand){if(command!=null){ConnectDB();Cmd1=newSqlCommand();Cmd1.CommandText=command;Cmd1.Connection=Conn1;Cmd1.ExecuteNonQuery();}}}
解决方案十二:
谢谢大家了!!!!
解决方案十三:
这种东东网上很多,微软企业库就是很典型的