14-4 ADO.NET简介2
14-4-1Connection连接、关闭数据库
1.为了访问数据库,就要提供数据库连接类,在C#中,是通过Connection类来实现的。它有
四种类型的连接方式:
SQLConnection
ADOConnection
OracleConnection
ODBCConnection
下面将以SQLConnection为例来讲解
Connection对象
准备工作
一、在程序运行中出现以下异常,用户登录sa失败
解决办法:
用windows认证先登录--右击属性--点击安全性--选择SQL Server和Windows身份验证模式(s)
2.创建连接SQL Server数据库的字符一般有两种,
一种是以SQL验证登录
另一种是以Window身份验证
步骤:
①引用命名空间System.Data.SqlClient
②将连接方法声明至字符串中
③创建Connection对象
④调用方法
-------------------------------------------------------实例1--------------------------------------------------
-------控制台应用程序Windows认证
static void Main(string[] args)
{
//数据库的连接分为两种
//SQL Server数据库
//windows身份验证实现登录并打开数据库
//integrated security综合安全性Initial Catalog数据库名称
string constr= "Server=localhost;integrated security =SSPI;Initial Catalog=csharpzxw";
SqlConnection mysqlCon = new SqlConnection(constr);
mysqlCon Open();
Console.WriteLine("数据库成功打开");
Console.ReadKey();
}
-------------------------------------------------------实例1--------------------------------------------------
-------------------------------------------------------实例2--------------------------------------------------
-------控制台应用程序SQL验证方式登录
Static void Main(string[] args)
{
//数据库的连接分为两种
//SQL Server数据库
//SQL验证方式验证实现登录并打开数据库
string constr = "Server = localhost;user=sa;database=csharpzxw";
SqlConnection mysqlCon = new SqlConnection(constr);
mysqlCon.Open();
Console.WriteLine("数据库成功打开");
Console.RedKey();
}
-------------------------------------------------------实例2--------------------------------------------------
1.为了节省系统资源,提高系统性能,最好使用完数据库后就要关闭连接。
2.在C#语言由于GC(Garbage Collection垃圾回收机制)的存在,会在未来的某个时刻释放,它是非决定性的,并不能确定这个过程在什么时候发生。当忘记关闭数据库时,可通过using语句确保对象在退出时立即被释放,从而达到关闭数据库的作用。
mysqlCon.Close();
//通过using语句来实现数据库关闭--使用完后立即关闭
Static void Main(string[] args)
{
string constr = "Server=localhost;user=sa;pwd=P@ss5566;database=GSClassDB";
SqlConnection mysqlCon = new SqlConnection(constr);
using(mysqlCon)
{
mysqlCon.Open();
Console.WriteLine("数据库成功打开");
}
Console.RedKey();
}
using 语句不但体改了性能,而且还达到挂壁数据库的功能。还有一种通过try...catch...finally语句控制连接数据库的关闭来提高性能。
//using语句与try catch finally综合使用
try
{
using(mysqlCon)
{
mysqlCon.Open();
Console.WriteLine("数据库成功打开");
}
}
catch
{
}
finally
{
mysqlCon.Close();
Console.WriteLine("数据库成功打开");
}
14-4-2Command操作数据
Command常用属性
属性 说明
CommandText 要下达至数据源的命令
CommandTimeout 出错时等待时间
Command三种方法
方法 说明
ExecuteNonQuery() 不返回任何值,一般应用于insert,update,delete语句中
ExecuteScalar() 返回一个值,一般用于只返回一个值的语句,如求数据统计count语句,求最大数Max语句,求最小数Min语句
ExecuteReader() 返回一个IDataReader,可用于迭代返回记录。