DBHelper类的简单使用
DBHelper类中已经定义对sql数据库的常用的完整操作方法
使用的时候只需要复制到项目内,修改类名称,创建操作数据库时,只需要调用DBHelper中对应的方法便可以直接获得当前sql语句的执行结果
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;//声明数据库命名空间
namespace 项目名称 {
class DBHelper {
private static SqlConnection conn = null;//声明空的数据库连接对象
/// <summary>
/// 打开数据库连接
/// </summary>
private static void connOpen() {
//定义连接字符串
string sql = "Data Source=服务器名称;Initial Catalog=数据库名称;Integrated Security=True";
conn = new SqlConnection(sql);//创建数据库连接
conn.Open();//打开数据库连接
}
/// <summary>
/// 关闭数据库连接
/// </summary>
private static void connClose() {
if (conn != null) {//判断数据库是否为空
conn.Close();
}
}
/// <summary>
/// 查询单个值
/// 此方法用于查询单个值的方法
/// 返回的为sql查询出的数据中第一行第一列的值
/// </summary>
/// <param name="sql"></param>
/// <returns>返回单个值string类型对象</returns>
public static string Scalar(string sql) {
try {
connOpen();//调用方法打开数据库连接
//1.创建Command对象
SqlCommand comm = conn.CreateCommand();
//2.设置执行的sql语句
comm.CommandText = sql;
//3.执行sql拿到的结果
return Convert.ToString(comm.ExecuteScalar());//将拿到的单个值返回给方法
} catch (Exception ex) {//如果出现异常则提示错误信息
Console.WriteLine("异常:" + ex.Message);
System.Windows.Forms.MessageBox.Show(ex.Message, "异常");
return null;//返回空值
} finally {
connClose();//最后关闭数据库连接
}
}
/// <summary>
/// 读取数据
/// 此方法也是用于查询
/// 与ExecuteScalar的区别为,Scalar查询的为首行首列的值,Reader查询的为sql语句查询的所有值
/// 返回的数据就是sql语句查询出的完整数据
/// </summary>
/// <param name="sql"></param>
/// <returns> 返回读取到的数据</returns>
public static SqlDataReader Reader(string sql) {
try {
connOpen();
SqlCommand comm = conn.CreateCommand();//创建command对象
comm.CommandText = sql;//对sql语句进行操作
//返回读取到的Reader数据
//CommandBehavior.CloseConnection用于关闭Reader连接之后自动关闭Conn数据库连接
return comm.ExecuteReader(CommandBehavior.CloseConnection);
} catch (Exception ex) {//如果出现异常则提示错误信息
Console.WriteLine("异常:" + ex.Message);
System.Windows.Forms.MessageBox.Show(ex.Message, "异常");
return null;
}
}
/// <summary>
/// 增删改
/// 此方法应用于增加,删除,修改等sql语句操作
/// 返回的为sql语句所影响的行数
/// </summary>
/// <param name="sql"></param>
/// <returns>返回增删改影响对象</returns>
public static int NonQuery(string sql) {
try {
connOpen();//打开数据库
SqlCommand comm = conn.CreateCommand();//创建comm对象
comm.CommandText = sql;//对sql语句进行操作
return comm.ExecuteNonQuery();//将影响的行数进行返回
} catch (Exception ex) {//如果出现异常则提示错误信息
Console.WriteLine("异常:" + ex.Message);
System.Windows.Forms.MessageBox.Show(ex.Message, "异常");
return 0;//返回0(相当于未对表进行操作)
} finally {
connClose();//关闭数据库连接
}
}
/// <summary>
/// 数据适配器
/// 返回适配器对象,可将sql查询的数据填充至DataSet对象
/// </summary>
/// <param name="sql"></param>
/// <returns>返回适配器对象</returns>
public static SqlDataAdapter adapter(string sql) {
try {//异常测试
connOpen();//连接数据库
//直接创建数据适配器 适配器对象=new 适配器(sql语句,数据库连接)
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
return adapter;//返回创建好的数据适配器
} catch (Exception ex) {//如果出现异常则提示错误信息
Console.WriteLine("异常:" + ex.Message);
System.Windows.Forms.MessageBox.Show(ex.Message, "异常");
return null;
} finally {
connClose();//关闭数据库连接
}
}
}
}