ADO.NET连接数据库(DBHelper类)

ADO.NET概述

ADO.NET是一种数据访问技术,使得应用程序可以连接到数据存储,并以各种方式操作存储在其中的数据。该技术基于.NET Framework,与.NET Framework类库的其余部分高度集成。ADO.NET API的设计,使得可以从所有面向.NET Framework的语言中使用该API,如Visual Basic、C#、J#、和Visual C++。ADO.NET软件栈包含两个主要部分:提供者和服务。
ADO.NET的“提供者”是一些组件,这些组件知道如何与特定的数据存储设施交互(例如,有一个提供者与SQL Server交互,另一个提供者与Oracle数据库交互)。所有的提供者都向外提供一个统一的API接口,ADO.NET软件栈中的其他层在此API之上建立。
ADO.NET还包括基于提供者而建立的一些服务,设计这些服务的目的,是为了方便编写应用程序。其中一个服务是内存中的缓存(in-memory cache),缓存保存了数据的关系形式,并执行修改跟踪和约束验证等功能;该服务通过ADO.NET DataSet接口提供,包括一些与提供者层进行交互的组件。

ADO.NET数据库连接方式分为两种
  1. windows身份验证

    server=服务器名;database=数据库名;integrated security=true

  2. sql Server身份验证

    server=服务器名;database=数据库名;uid=用户名;pwd=密码

ADO.NET五大对象
  1. Connection(数据库连接对象)
  2. Command(执行SQL语句,曾删改命令)
  3. DataAdapte(执行SQL查询语句,断开式查询)
  4. DataReader(执行SQL语句,非断开式查询)
  5. DataSet(数据集)
引入名称空间

using System.Data.SqlClient;
using System.Data;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
using System;
using System.Data.SqlClient;
using System.Data;

namespace CinemaTicketSystem
{
class DBHelper
{
//创建链接数据库字符串
private static string ConnStr = "server=.;database=DarkNet;integrated security=true";

//创建链接数据库对象
private static SqlConnection Conn = new SqlConnection(ConnStr);;

/// <summary>
/// 链接数据库
/// </summary>

private static void InitConnection()
{
//判断数据库是否关闭,关闭则打开数据库
if (Conn.State == ConnectionState.Closed)
{
Conn.Open();
}
//判断数据库是否处于中断状态,中断则先关闭数据库再打开数据库
if (Conn.State == ConnectionState.Broken)
{
Conn.Close();
Conn.Open();
}
}

/// <summary>
/// 断开试查询
/// </summary>
/// <param name="sqlStr"></param>
/// <returns></returns>

public static DataTable GetDataTable(string sqlStr)
{
InitConnection();
SqlDataAdapter sda = new SqlDataAdapter(sqlStr, Conn);
DataTable td = new DataTable();
sda.Fill(td);
Conn.Close();
return td;
}

/// <summary>
/// 非断开试查询
/// </summary>
/// <param name="sqlStr"></param>
/// <returns></returns>

public static SqlDataReader GetDataReader(string sqlStr)
{
InitConnection();
SqlCommand cmd = new SqlCommand(sqlStr, Conn);
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}

/// <summary>
/// 增删改
/// </summary>
/// <param name="sqlStr">sql语句</param>
/// <returns></returns>

public static bool ExecuteNoneQuery(string sqlStr)
{
InitConnection();
SqlCommand cmd = new SqlCommand(sqlStr, Conn);
bool rel = cmd.ExecuteNonQuery() > 0;
Conn.Close();
return rel;
}

/// <summary>
/// 执行聚合函数
/// </summary>
/// <param name="sqlStr"></param>
/// <returns></returns>

public static object ExecuteScalar(string sqlStr)
{
InitConnection();
SqlCommand cmd = new SqlCommand(sqlStr, Conn);
object rel = cmd.ExecuteScalar();
Conn.Close();
return rel;
}
}
}
悠哉码农的日常 wechat
扫一扫上面的微信公众号
坚持原创技术分享,谢谢你为我充电