使用ADO.NET操作数据库

使用ADO.NET操作数据库
ADO.NET概述
大部分应用程序都需要访问数据库,那通常这些数据都存放在数据库中,为了是客户端能够访问数据库服务器上的数据,就需要数据库访问的方法和技术ADO.NET
ADO.NET简介
ADO.NET 是一种应用程序与数据源交互的 API,它支持的数据源包括数据库、文本文件、Excel 表格或者 XML 文件等。ADO.NET 封装在 System.Data 命名空间及其子命名空间(System.Data.SqlClient 和 System.Data.OleDb)中,提供了强大的数据访问和处理功能,包括索引、排序、浏览和更新等。

ADO.NET的框架
比较强大的是它与数据源断开连接时也可以使用数据

例如:p276

ADO.NET主要组件
ADO.NET提供了两个组件用来访问数据库
⦁ DataSet数据集:独立于数据源的数据访问
⦁ .NET Framework数据提供程序:用于连接数据库执行命令,检索结果

 

应用程序访问数据库期间经历了很多过程,刚刚说过,AOP.NET提供了两个组件,其中.NET Framework包含了下面这一大堆 ,那怎么去链接数据库呢,这里面提供了一个Connection对象(连接数据库用的),通过Connection建立对数据库的链接,把链接的桥梁打开,然后执行一些功能(insert delete),那这个命令由谁执行,左边Commend对象
来执行,增、删、改,如果要执行查,查多个数据,就使用另一个对象DataReader对象,来负责从数据库中一条一读出来,这边还一个DtaAdapter对象,他是和数据源DataSet链接的


导入什么命名空间取决于我们是用哪一个数据库

 

 

 

 

 


使用Connection对象
数据库链接对象


认识Connection对象
Connection:建立与特定的数据源的链接
Command:对数据源执行命令
DataReader:从数据源中读取只进且只读的数据流
DataAdapter:用数据填充DataSet并解析更新

为了建立链接Connection提供了一些属性和方法

链接数据库之前必须调用.open方法打开,链接过后调用.Close关闭
定义字符串链接的语法:
Data Source = 服务器名;database = 数据库名;Uid = 用户名;pwd =密码
密码位空就不写
第一步写链接
创建Connection对象
打开数据库
提示
关闭数据库
提示
控制台停留
案例:
// 测试打开数据库的操作
string connString = "Data Source=.;Initial Catalog=MySchool;User ID=sa;Pwd=bdqn";
SqlConnection connection = new SqlConnection(connString);
// 打开数据库连接
connection.Open();
Console.WriteLine("打开数据库连接成功");
// 关闭数据库连接
connection.Close();
Console.WriteLine("关闭数据库连接成功");
Console.ReadLine();
private string ConnString = "server=.;database = MobileManagers;uid=sa;pwd = 9426;";

 

 

 

使用try-catch-finally
// 测试打开数据库的操作
string connString = "Data Source=.;Initial Catalog=MySchool;User ID=sa;pwd=bdqn";
SqlConnection connection = new SqlConnection(connString);
try
{
// 打开数据库连接
connection.Open();
Console.WriteLine("打开数据库连接成功");
}
catch (Exception ex)
{
Console.WriteLine("出现异常:" + ex.Message);
}
finally
{
// 关闭数据库连接
connection.Close();
Console.WriteLine("关闭数据库连接成功");
Console.ReadLine();
}


<shangji1>


使用Command对象
Command(命令对象)用于封装和执行 SQL 命令并从数据源中返回结果,命令对象的 CommandText 属性用来保存最终由数据库管理系统执行的 SQL 语句。注意,不同的数据源需要使用不同的命令对象。下面列出了 Command 的主要成员:
Connection:Connection 对象使用的数据库连接。
CommandText:执行的 SQL 语句。
ExecuteNonQuery():执行不返回行的语句,如 Updata 等,执行后返回受影响的行数。
ExecuteReader():返回 DataReader 对象。
ExecuteScalar():执行查询,并返回查询结果集中的第一行的第一列。
虽然不同数据源的命令对象的名字不同略有不同,但使用方法是相同的,通常按以下步骤访问数据库源:
虽然不同数据源的命令对象的名字不同略有不同,但使用方法是相同的,通常按以下步骤访问数据库源:
1.创建数据库连接。 
2.定义 SQL 语句。 
3.创建 Command 对象,一般形式如下:
SqlCommand comm = new SqlCommand( SQL语句, 数据库连接对象);
也可采用以下形式创建 Command 对象。
SqlCommand comm = new SqlCommand();
comm.Connection = 数据库连接对象;
comm.CommandText = "SQL语句";
4.执行命令。
注意:在执行命令前,必须打开数据库连接,执行命令后,应该关闭数据库连接。


/// <summary>
/// 操作数据库类
/// </summary>
class DBHlper
{
//连接字符串
private const string strConn = "Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=bdqn";

/// <summary>
/// 检查用户信息
/// </summary>
/// <param name="userName">用户名</param>
/// <param name="pwd">密码</param>
/// <param name="strMsg">需返回的处理信息</param>
/// <returns>成功&失败</returns>
public bool CheckUserInfo(string userName, string pwd,ref string strMsg)
{
//创建数据库连接
SqlConnection conn = new SqlConnection(strConn);

try
{
//创建Sql语句
string strSql = "select count(*) from Admin where LoginId='" + userName + "' and LoginPwd='" + pwd + "'";
conn.Open();

//创建Command命令
SqlCommand comm = new SqlCommand(strSql, conn);
int iRet = (int)comm.ExecuteScalar();
if (iRet != 1)
{
strMsg = "用户名或密码错误!";
return false;
}
else
{
return true;
}
}
catch (Exception)
{
strMsg = "发生异常!";
return false;
}
finally
{
//关闭数据库连接
conn.Close();
}
}

/// <summary>
/// 测试MySchoo的数据库连接
/// </summary>
public void OpenConnection()
{
// 测试打开数据库的操作
string connString = "Data Source=.;Initial Catalog=MySchool;User ID=sa;pwd=bdqn";
SqlConnection connection = new SqlConnection(connString);

try
{
// 打开数据库连接
connection.Open();
Console.WriteLine("打开数据库连接成功");
}
catch (Exception ex)
{
Console.WriteLine("出现异常:"+ex.Message );
}
finally
{
// 关闭数据库连接
connection.Close();
Console.WriteLine("关闭数据库连接成功");
Console.ReadLine();
}
}
}


业务处理类
/// <summary>
/// 处理School业务信息类
/// </summary>
class SchoolManager
{
private DBOperation _dbOper = new DBOperation();//创建DBOperation的实例

public void Login()
{
Console.WriteLine("请输入用户名:");
string strUserName = Console.ReadLine();
Console.WriteLine("请输入密码:");
string strPwd = Console.ReadLine();
// 需返回的结果信息
string strMsg = string.Empty;
bool bRet = _dbOper.CheckUserInfo(strUserName, strPwd, ref strMsg);
if (bRet )
{
Console.WriteLine("登录成功!");
}
else
{
Console.WriteLine("登录失败!" + strMsg);
}
}


测试类
//管理员登录
SchoolManager manger = new SchoolManager();
manger.Login();

Console.ReadLine();

 

 

 

 

posted @ 2018-01-17 17:36  H丶  阅读(272)  评论(0编辑  收藏  举报