c#中只连接数据库一次

问题描述

我用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();}}}
解决方案十二:
谢谢大家了!!!!
解决方案十三:
这种东东网上很多,微软企业库就是很典型的

时间: 2024-09-19 09:20:22

c#中只连接数据库一次的相关文章

如何数组中只出现一次的数字

题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 输入 每个测试案例包括两行 第一行包含一个整数n,表示数组大小.2<=n <= 10^6. 第二行包含n个整数,表示数组元素,元素均为int. 输出 对应每个测试案例,输出数组中只出现一次的两个数.输出的数字从小到大的顺序. 样例输入: 8 2 4 3 6 3 2 5 5 样例输出: 4 6 思路:上篇博文中已经了解到异或去重的原理,而且知道如果只有一个只出现一次的数字的求法,但这里是有两个

怎样在Excel中只显示大于10的数字?

  今天我们来学习一下Excel中一个小技巧,在Excel设置只显示大雨10的数字,你知道如何操作码?如果不懂就一起来学习一下操作技巧吧. 怎样在Excel中只显示大于10的数字? 如下图所示,B列是数字,字母混杂的内容.要求只显示大于10的数字,其他的都隐藏起来. 操作步骤: 选取区域 - ctrl+数字1打开单元格设置窗口 - 数字 - 自定义 - 在右边文本框中输入自定义代码 :[>10]G/通用格式; 注意:红色的要全部输入,包括最后的英文状态引号(;) 设置完成的效果如下图所示. 这样

[剑指Offer]40.数组中只出现一次的数字

题目 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 思路 我们直到异或的性质: 任何一个数字异或他自己都等于0. 所以说我们如果从头到尾依次异或每一个数字,那么最终的结果刚好只出现一次的数字,因为成对出现的两次的数字全部在异或中抵消了. 这道题中有两个数字只出现一次.这样的话我们得到的结果就是这两个数字的异或结果.因此我们想办法把原数组分成两个子数组,使得每个子数组包含一个只出现一次的数字.这样我们就可以对这两个子数组分别异或,就能得到两个只出现一

jquery下拉菜单在浏览器中只显示1像素,求大神帮帮忙

问题描述 jquery下拉菜单在浏览器中只显示1像素,求大神帮帮忙 本人小菜鸟一枚,用jquery写了个简单的下拉菜单,代码如下:$(document).ready(function(){ $(""#navRight .jiantou"").hover(function(){ $(this).find("".xiangq"").stop().slideDown(""slow""); }f

iphone-在所有栏中只显示一个视图

问题描述 在所有栏中只显示一个视图 在UITabViewController的所有栏中只显示一个视图(UIButton). 应该怎么实现呢? 比如info按钮在栏中一直显示,不用将它添加到xib或重写代码. 解决方案 执行一个Tab Bar Controller类,在viewDidLoad方法中,循环遍历全部Tab Bar View Controllers添加按钮. - (void)viewDidLoad { [super viewDidLoad]; for(UIViewController *

java中只有方法会抛出异常,类是不会抛出异常的是不是

问题描述 java中只有方法会抛出异常,类是不会抛出异常的是不是 java中只有方法会抛出异常,类是不会抛出异常的是不是 抛出的异常最终也是要处理的是吧, 具体是如何处理的呢 解决方案 看一下这篇文章吧<深入理解java异常处理机制 >http://blog.csdn.net/hguisu/article/details/6155636 解决方案二: 只有方法丢出异常,这是对的.但是如果构造函数丢出异常,会看上去好像没有调用任何方法就丢出了异常.比如class A{public A() { t

用PHP的正则表达式匹配字符串中只出现两次的数字

问题描述 用PHP的正则表达式匹配字符串中只出现两次的数字 列如:$user = ""aaa128ddd224545frgrg22greb5sdb44vd12vf56"";把只出现两次的数字找出来224456 解决方案 $user = ""aaa128ddd224545frgrg22greb5sdb44vd12vf56"";$zzd='/((d)\2)/is';preg_match_all($zzd$user$adsx);pr

图片-Android initviews中只执行一次

问题描述 Android initviews中只执行一次 在json中获取图片链接 if(picJson.has("slider_pic") == true){ slider_pic_URL=picJson.getString("slider_pic"); // System.out.println("topview图片链接"+slider_pic_URL); piccList = new JSONArray(slider_pic_URL); f

java-jsp中jdbc连接数据库出错

问题描述 jsp中jdbc连接数据库出错 代码如下,错误我不知道如何解决: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.sql.*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitiona