ADO.NET——Connection(连接数据库)

简介:      在ADO.NET对象模型中,Connection对象代表了与数据源之间的连接。     .NET框架中有两个Connection对象:一个是OleDbConnection,用于大多数的数据库连接,一个是SqlConnection,是MS开发的专门用于针对SQLServer的连接。

     在ADO.NET对象模型中,Connection对象代表了与数据源之间的连接。

    .NET框架中有两个Connection对象:一个是OleDbConnection,用于大多数的数据库连接,一个是SqlConnection,是MS开发的专门用于针对SQLServer的连接。在创建Connection对象之前,你必须先引用System.Data.OleDb或者System.Data.SqlClient和System.Data三个名空间.


一,基本连接示例


   对于连接对象的使用,可以类比VB中ADO的使用。现在来看一段连接的代码,来认识一下如何对数据库进行连接的。

   如图,建个小界面:

   


然后在连接按钮的事件中加入如下代码:

string strConn = "database=Login;server=localhost;UID=sa;PWD=123456";  //连接字符串
            SqlConnection conn = new SqlConnection(strConn); //建立连接
            conn.Open();  //打开连接

            //判断连接状态
            if (conn.State == ConnectionState.Open)
            {
                lblState.Text = "连接已经打开啦~~~~";
            }
            else
            {
                lblState.Text = "抱歉,未能连接上数据库";
            }

            conn.Close();  //关闭连接
            conn.Dispose();  //释放资源

by the way,别忘了,using ...



and then, Ctrl+F5:

 


二,使用高效的ADO连接


      在程序运行的过程中,往往可能会出现各种错误,比如,当刚连上数据库,可能因为某种原因,系统崩溃,结果导致connection没有close,此后,如果再进行连接的话,此时就会提示连接没有关闭。为了防止这种问题,这里,我们有两种解决方法。

  1,使用try...Catch...finally

     将上面的程序进行改写:

            string strConn = "database=Login;server=localhost;UID=sa;PWD=123456";  //链接字符串
            SqlConnection conn = new SqlConnection(strConn); //建立连接

            try
            {
                conn.Open();  //打开连接
                
            }
            catch (SqlException error)
            {
                //此时将错误写入日志文件
                MessageBox.Show("抱歉,程序发生错误");
            }
            finally
            {
                //判断连接状态
                if (conn.State == ConnectionState.Open)
                {
                    lblState.Text = "连接已经打开啦~~~~";
                }
                else
                {
                    lblState.Text = "抱歉,未能连接上数据库";
                }
                conn.Close();  //关闭连接
                conn.Dispose();  //释放资源
 
            }

2,使用using{............}

using (SqlConnection conn = new SqlConnection(strConn)) //建立连接
            {
                conn.Open();  //打开连接

                //判断连接状态
                if (conn.State == ConnectionState.Open)
                {
                    lblState.Text = "连接已经打开啦~~~~";
                }
                else
                {
                    lblState.Text = "抱歉,未能连接上数据库";
                }
            }


     在此处,用using来确保资源的释放。

     当然,也可以这两种方法结合起来使用,用try...catch..捕捉异常,让后写入日志,用using来确保资源的释放。



  




目录
相关文章
|
13天前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
113 68
|
9天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
23 3
|
9天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
13 1
|
9天前
|
Java 数据库连接 数据库
Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销
本文深入探讨了Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销,显著提升了系统的响应速度和吞吐量。文章介绍了连接池的工作原理,并以HikariCP为例,展示了如何在Java应用中使用连接池。通过合理配置和优化,连接池技术能够有效提升应用性能。
24 1
|
12天前
|
SQL 关系型数据库 数据库连接
"Nacos 2.1.0版本数据库配置写入难题破解攻略:一步步教你排查连接、权限和配置问题,重启服务轻松解决!"
【10月更文挑战第23天】在使用Nacos 2.1.0版本时,可能会遇到无法将配置信息写入数据库的问题。本文将引导你逐步解决这一问题,包括检查数据库连接、用户权限、Nacos配置文件,并提供示例代码和详细步骤。通过这些方法,你可以有效解决配置写入失败的问题。
36 0
|
2月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
38 7
|
2月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
53 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
46 0
|
3月前
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
|
3月前
|
开发框架 .NET
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
119 0