数据库连接和异常处理的几种常用方法

一.数据库连接

   1.在需要数据库连接的地方连接数据库。比如说:      

1 public class SQLHleper
2 {
3 public int ExecuteNonQuery(string sql)
4 {
5 connstr="server=.;database=newssystem;uid=sa;pwd=123";
6 SqlConnection conn = new SqlConnection(strconn);
7 conn.Start();
8 ..........
9 conn.Close();
10 }
11 }

       这种方法很显然是初学者使用的方法,在这里就不多说了。。。

1 public class SQLHleper
2 {
3 connstr="server=.;database=newssystem;uid=sa;pwd=123";
4 SqlConnection conn = new SqlConnection(strconn);
5
6 public int ExecuteNonQuery(string sql)
7 {
8 conn.Start();
9 ..........
10 conn.Close();
11 }
12
13 public int Execute(string sql)
14 {
15 conn.Start();
16 ..........
17 conn.Close();
18 }
19 }

       这种方法的好处是只需在开始的时候建立连接,以后不管你有好多的地方使用数据库连接直接使用就是了。

3.使用配置文件建立数据库的连接。

      使用方法步骤如下:(1) 打开web.config,将<connectionStrings/>改成<connectionStrings><add name="connstr" connectionString="server=.;database=newssystem;uid=sa;pwd=123"/></connectionStrings>

      (2) 在你需要数据库连接的地方引入命名空间using System.Configuration;

      (3) 右键单击所在项目中的“引用”选项,单击添加引用,然后在·NET选中添加System.Configuration组件,单击确定即可。

      (4) 然后在添加string strconn = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;即可建立数据库的连接。

  这种方法的好出是一旦你的数据库的密码修改的话,你不必打开你的项目去修改你的密码,而只需用记事本打开web.config文件修改密码就可以了。

 

二.异常处理

    1.最常用的一种方法是:

            try()

            {}

            catch(Exception ex)

            {throw ex;}

            finally
            {}

    2.另一种方法是Using语句。大家都知道Using可以引入命名空间,但同时他也可以处理异常。它可定义一个范围,在范围结束时处理对象。
       当在某个代码段中使用了类的实例,而希望无论因为什么原因,只要离开了这个代码段就自动调用这个类实例的Dispose。要达到这样的目的,用try...catch来捕捉异常也是可以的,但用using也很方便。

例如:

using (Class1 cls1 = new Class1(), cls2 = new Class1())
{
  // the code using cls1, cls2
 
} // call the Dispose on cls1 and cls2

这里触发cls1和cls2的Dispose条件是到达using语句末尾或者中途引发了异常并且控制离开了语句块。

2.如果一个类中有很多的方法,而每一个方法中都需要去连接数据库的活,这样是很耗资源的,这是我们就需要在开始的地方建立数据库的连接。

转载于:https://www.cnblogs.com/Lebron/archive/2010/04/24/1719552.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411070.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 创建线程的三种方法_java 创建线程的几种方式

说道线程&#xff0c;肯定会想到使用 java.lang.Thread.java这个类那么创建线程也主要有2种方式第一种方式&#xff1a;public class MyThread extends Thread {public void run() {System.out.println("这是MyThread线程");}}然后在调用处&#xff0c;执行start方法…

[html] 说说你对HTML5中pattern属性的理解

[html] 说说你对HTML5中pattern属性的理解 好像是判断input在输入时按下tab键跳转到下一个input的优先级个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

【iOS】从实际出发理解多线程(二)--NSThread基础操作

简介 NSthread是苹果官方提供面向对象操作线程的技术&#xff0c;简单方便&#xff0c;可以直接操作线程对象&#xff0c;不过需要自己控制线程的生命周期。在平时使用较少&#xff0c;常用的就是下面的方法来获取当前线程。 [NSThread currentThread] 使用 1.实例初始化、属性…

java readline最后一行_java – 如何在reader.readLine()中检测第一行和最后一行?

酷问题我打了一圈,这是一个SSCCE,只是copy’n’paste’n’run它.package com.stackoverflow.q2292917;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.io.PrintWriter;public class Test {public stati…

Qt中使用QSqlDatabase::removeDatabase()的正确方法

如果你用过Qt的QSqlDatabase的话&#xff0c;多半会对下面的警告信息感兴趣&#xff1a; QSqlDatabasePrivate::removeDatabase: connection qt_sql_default_connection is still in use, allqueries will cease to work. 意思是说&#xff0c;还有某查询引用默认数据库连接&qu…

[html] 你是如何区分HTML和HTML5的?

[html] 你是如何区分HTML和HTML5的&#xff1f; 通过文档类型声明&#xff1b;通过一些HTML5独有新标签&#xff1a;<date>、<email>、<url>、<video>、<section>、<canvas>等个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识…

app爬虫Android 7证书设置

环境&#xff1a;windows&#xff0c;Android sdk&#xff08;要使用adb命令&#xff09;&#xff0c;夜神模拟器&#xff08;自己创建一个Android 7 模拟器&#xff0c;设置root&#xff0c;桥接&#xff0c;wlan设置好代理&#xff09; 模拟器设置代理 如xxx.xxx.xxx.xxx:888…

java indexof效率_Java indexOf函数比Rabin-Karp更有效吗?文字搜寻效率

几周前&#xff0c;我向Stackoverflow提出了一个问题&#xff0c;该问题涉及如何创建一种有效的算法来搜索大量文本中的模式。现在&#xff0c;我正在使用String函数indexOf进行搜索。一个建议是使用Rabin-Karp作为替代方案。我编写了一些如下的测试程序&#xff0c;以测试Rabi…

双绞线制作方法和标准

双绞线的制作方法&#xff1a; 标准568B&#xff1a;橙白--1&#xff0c;橙--2&#xff0c;绿白--3&#xff0c;蓝--4&#xff0c;蓝白--5&#xff0c;绿--6&#xff0c;棕白--7&#xff0c;棕--8 (如图2&#xff09; 标准568A&#xff1a;绿白--1&#xff0c;绿--2&#xff0c…

深入理解Java枚举类型(enum)

理解枚举类型 枚举类型是Java 5中新增特性的一部分&#xff0c;它是一种特殊的数据类型&#xff0c;之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束&#xff0c;但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。下面先来看看什么是枚举…

[html] html的属性值有规定要使用单引号还是双引号吗?

[html] html的属性值有规定要使用单引号还是双引号吗&#xff1f; 使用单引号和双引号是等效的个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

java请求注释_求达人给java代码【注释】!!请求尽量详细,万分感谢!!

(1)定义一个接口Inf&#xff0c;含有常量π和一个实现计算功能的方法calculate()&#xff0c;再分别定义一个面积类area和一个周长类circumference&#xff0c;各自按计算圆面积和圆周长具体实现接口中的方法&#xff0c;并以...(1) 定义一个接口Inf&#xff0c;含有常量π和一…

新浪的股票接口 c#

需要注意的这个只是获取单只股票 代码的用处&#xff0c;通过这个代码有炒股的朋友就可以写出简单的自动止损和按一定价格入场的程序了。&#xff08;国内正规券商不支持这种功能&#xff0c;可能是为了防止一些东西。&#xff09; 我们先来看一下股票信息的类 namespace Qianf…

.data()与.detach()的区别

.data()和.detach()都可以获取Variable内部的Tensor&#xff0c;但.detach()更加安全 https://zhuanlan.zhihu.com/p/38475183 转载于:https://www.cnblogs.com/Manuel/p/11077202.html

[html] 直接使用b标签和使用css的font-weight有什么区别?

[html] 直接使用b标签和使用css的font-weight有什么区别&#xff1f; HTML 的标签负责将内容标记为 HTML 元素&#xff0c;浏览器的默认 CSS 样式表负责按照 W3C 的建议来指定 HTML 元素的默认样式。 可以这样理解&#xff0c;使用 b 标签标记的内容浏览器会使用相应的默认 CS…

Flash/Flex学习笔记(47):反向运动学(上)

先回顾上篇所说的"正向运动学"&#xff1a;以人行走的例子来说&#xff0c;基本上可以理解为大腿驱动小腿&#xff0c;小腿驱动脚&#xff0c;从而引发的一系列姿态调整和运动。再举一个例子&#xff0c;我们用着拿一根软鞭或链条的一端挥舞&#xff0c;被手挥舞的这…

java pojo 转 map_JSON和JAVA的POJO的相互转换

正在做一个进销存的项目&#xff0c;为了JSON和JAVA的POJO之间转换&#xff0c;很费劲啊&#xff0c;上传&#xff0c;以备以后有用&#xff01;importjava.util.Collection;importjava.util.HashMap;importjava.util.Map;importnet.sf.json.JSONArray;importnet.sf.json.JSONO…

[html] 说说你对abbr标签的理解,它有什么含义?

[html] 说说你对abbr标签的理解&#xff0c;它有什么含义&#xff1f; 缩略词个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

静,动态数组总结

本文转自万一老师的博客 原文出处: http://www.cnblogs.com/del/category/114641.html静态数组的定义方法: //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&l…

java tomcat jms_JavaWeb之使用Tomcat、JNDI与ActiveMQ实现JMS消息通信服务

前言之所以使用JNDI 是出于通用性考虑&#xff0c;该例子使用JMS规范提供的通用接口&#xff0c;没有使用具体JMS提供者的接口&#xff0c;这样可以保证我们编写的程序适用于任何一种JMS实现(ActiveMQ、HornetQ等)。什么是JNDI&#xff1a;JNDI(Java Naming and Directory Inte…