C#三层ATM-3.编写数据库访问类
2016-06-06 13:35
357 查看
1.在DAL项目里新建类文件,命名为DbHelperSQL,本类放数据库访问的常用方法。
2.为DAL项目添加System.Configuration引用。对着项目下的引用点右键--选添加引用。打开下图。。选择。
![](https://images2015.cnblogs.com/blog/16018/201606/16018-20160606133450777-1562020506.jpg)
3.添加 引入命名空间
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
为类添加静态字段---连接字符串,从winf的配置文件app.config里取
public static string connectionString = ConfigurationManager.ConnectionStrings["sqlservercon"].ConnectionString;
4.添加执行非查询语句,返回影响的行数的方法
/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}
5.添加执行一条计算查询结果语句,返回查询结果(object)。地方法
/// <summary>
/// 执行一条计算查询结果语句,返回查询结果(object)。
/// </summary>
/// <param name="SQLString">计算查询结果语句</param>
/// <returns>查询结果(object)</returns>
public static object GetSingle(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
object obj = cmd.ExecuteScalar();
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}
6.添加执行查询 返回dataset地方法
/// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>DataSet</returns>
public static DataSet Query(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
7.执行 某个数据表的某个字段的最大值
public static int GetMaxID(string FieldName, string TableName)
{
string strsql = "select max(" + FieldName + ")+1 from " + TableName;
object obj = GetSingle(strsql);
if (obj == null)
{
return 1;
}
else
{
return int.Parse(obj.ToString());
}
}
8.执行 判断是否存在
public static bool Exists(string strSql)
{
object obj = GetSingle(strSql);
int cmdresult;
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
cmdresult = 0;
}
else
{
cmdresult = int.Parse(obj.ToString()); //也可能=0
}
if (cmdresult == 0)
{
return false;
}
else
{
return true;
}
}
2.为DAL项目添加System.Configuration引用。对着项目下的引用点右键--选添加引用。打开下图。。选择。
![](https://images2015.cnblogs.com/blog/16018/201606/16018-20160606133450777-1562020506.jpg)
3.添加 引入命名空间
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
为类添加静态字段---连接字符串,从winf的配置文件app.config里取
public static string connectionString = ConfigurationManager.ConnectionStrings["sqlservercon"].ConnectionString;
4.添加执行非查询语句,返回影响的行数的方法
/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}
5.添加执行一条计算查询结果语句,返回查询结果(object)。地方法
/// <summary>
/// 执行一条计算查询结果语句,返回查询结果(object)。
/// </summary>
/// <param name="SQLString">计算查询结果语句</param>
/// <returns>查询结果(object)</returns>
public static object GetSingle(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connection.Open();
object obj = cmd.ExecuteScalar();
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch (System.Data.SqlClient.SqlException e)
{
connection.Close();
throw e;
}
}
}
}
6.添加执行查询 返回dataset地方法
/// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>DataSet</returns>
public static DataSet Query(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
7.执行 某个数据表的某个字段的最大值
public static int GetMaxID(string FieldName, string TableName)
{
string strsql = "select max(" + FieldName + ")+1 from " + TableName;
object obj = GetSingle(strsql);
if (obj == null)
{
return 1;
}
else
{
return int.Parse(obj.ToString());
}
}
8.执行 判断是否存在
public static bool Exists(string strSql)
{
object obj = GetSingle(strSql);
int cmdresult;
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
{
cmdresult = 0;
}
else
{
cmdresult = int.Parse(obj.ToString()); //也可能=0
}
if (cmdresult == 0)
{
return false;
}
else
{
return true;
}
}
相关文章推荐
- MongoDB与MySQL的插入、查询性能测试
- MySQL常用的SQL查询语句
- 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表
- 使用ORMLite(框架)创建SQLite数据库
- Atlas+keepalive+LVS+mysql主从
- MYSQL参数学习---------------- 张碧池
- 浅谈sql中的in与not in,exists与not exists的区别
- Oracle12c下pdborcl消失了,重新插入pdborcl
- SQL Server命令大全
- Oracle优化器
- 使用calibrate包测试oracle吞吐和iops
- oracle模糊查询语句使用示例
- rowid切片,模拟oracle并行
- 查看数据库所有参数脚本
- MySQL影响性能的因素
- MySQL管理常用命令
- c#中sqlserver数据库事务处理
- Redis设计与实现之数据库
- mysql启动脚本详解
- 在PostgreSQL中使用oracle_fdw访问Oracle