C#操作SQLServer2012类
public class SqlServerService
{
public string CONN_STRING { get; set; } = "Data Source=.;Database=dbname;uid=sa;pwd=123;min pool size=1; max pool size=64";
/// <summary>
/// 数据库连接
/// </summary>
private SqlConnection connection; private static log4net.ILog logger = log4net.LogManager.GetLogger(typeof(SqlServerService)); /// <summary>
///
/// </summary>
public SqlServerService()
{
connection = new SqlConnection(CONN_STRING);
//Console.WriteLine(""+CONN_STRING);
}
/// <summary>
///
/// </summary>
/// <param name="conn_str">指定的字符串连接</param>
public SqlServerService(string conn_str)
{
CONN_STRING = conn_str;
connection = new SqlConnection(CONN_STRING);
} /// <summary>
/// 执行操作语句 delete/insert/update
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public long Execute(string sql)
{
long rest = 0;
if (connection.State == System.Data.ConnectionState.Open)
{
try
{
connection.Close();
}
catch (Exception ex)
{
logger.Warn("关闭异常", ex);
}
} try
{
this.connection.Open();
SqlCommand cmd = new SqlCommand(sql, this.connection);
rest = cmd.ExecuteNonQuery();
this.connection.Close(); }catch(Exception ex)
{
logger.Warn("执行操作语句异常", ex);
} return rest;
} /// <summary>
/// 获取最后插入ID
/// </summary>
/// <param name="tabname"></param>
/// <returns></returns>
public long GetLastInsertID(string tabname)
{
//SELECT IDENT_CURRENT('dtPlatGroup')
return FetchFirst<long>("SELECT IDENT_CURRENT('"+tabname+"')");
} /// <summary>
/// 查询数据集
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public List<Hashtable> FetchAll(string sql)
{
return Select(sql);
}
/// <summary>
/// 查询数据集
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public List<Hashtable> Select(string sql)
{
List<Hashtable> lst = new List<Hashtable>();
if (connection.State == System.Data.ConnectionState.Open)
{
try
{
connection.Close();
}
catch (Exception ex)
{
logger.Warn("关闭异常", ex);
}
}
try
{
this.connection.Open();
SqlCommand cmd = new SqlCommand(sql, this.connection);
SqlDataReader sdr = cmd.ExecuteReader();
int fieldCount = sdr.FieldCount;
while (sdr.Read())
{
Hashtable ht = new Hashtable();
string _key = string.Empty;
for (int i = 0; i < fieldCount; i++)
{
_key = sdr.GetName(i);
ht[_key] = sdr[i];
}
lst.Add(ht);
} this.connection.Close();
}
catch (Exception ex)
{
logger.Warn("执行查询异常", ex);
} return lst;
} /// <summary>
/// 只读取第一行数据
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public Hashtable FetchRow(string sql)
{
Hashtable ht = new Hashtable();
if (connection.State == System.Data.ConnectionState.Open)
{
try
{
connection.Close();
}
catch (Exception ex)
{
logger.Warn("关闭异常", ex);
}
} try
{
this.connection.Open();
SqlCommand cmd = new SqlCommand(sql, this.connection);
SqlDataReader sdr = cmd.ExecuteReader();
int fieldCount = sdr.FieldCount;
while (sdr.Read())
{
string _key = string.Empty;
for(int i = 0; i < fieldCount; i++)
{
_key = sdr.GetName(i);
ht[_key] = sdr[i];
}
break;
} this.connection.Close();
}catch(Exception ex)
{
logger.Warn("执行查询异常", ex);
} return ht;
} /// <summary>
/// 获取第一行第一列值
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql"></param>
/// <returns></returns>
public T FetchFirst<T>(string sql)
{
T t;
if (connection.State == System.Data.ConnectionState.Open)
{
try
{
connection.Close();
}
catch (Exception ex)
{
logger.Warn("关闭异常", ex);
}
}
try
{
this.connection.Open(); SqlCommand cmd = new SqlCommand(sql, this.connection);
t = (T)cmd.ExecuteScalar();
this.connection.Close();
}
catch (Exception ex)
{
t = default(T);
logger.Warn("查询异常", ex);
} return t;
} /// <summary>
/// 检查一个连接是否正常
/// </summary>
/// <returns></returns>
public bool Ping()
{
return Ping(this.connection);
}
/// <summary>
/// 检查一个连接是否正常
/// <paramref name="connection"/>
/// </summary>
/// <returns></returns>
public bool Ping(SqlConnection connection)
{
bool rest = false;
if ( connection.State == System.Data.ConnectionState.Open)
{
try
{
connection.Close();
}
catch(Exception ex)
{
logger.Warn("关闭异常", ex);
}
} // select top 1 1 from sys.tables;
try
{
connection.Open();
SqlCommand cmd = new SqlCommand("select top 1 1 from sys.tables", connection);
cmd.ExecuteScalar();
connection.Close();
rest = true;
}
catch(Exception ex)
{
logger.Warn("调试Ping异常", ex);
} return rest;
}
}
C#操作SQLServer2012类的更多相关文章
- XML格式示例 与 XML操作(读取)类封装
header('Content-Type: text/xml'); <?xml version="1.0" encoding="utf-8" standa ...
- 简洁的PHP操作SQLite类
SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了. ...
- C#工具类:Json操作帮助类(转载)
原文转载自C#工具类:Json操作帮助类_IT技术小趣屋. Json序列化和反序列化在程序开发中时常会遇到,在C#中可以使用很多种方法实现对数据的Json序列化和反序列化,封装一个Json操作工具类来 ...
- 【转载】C#工具类:Json操作帮助类
Json序列化和反序列化在程序开发中时常会遇到,在C#中可以使用很多种方法实现对数据的Json序列化和反序列化,封装一个Json操作工具类来简化相应的操作,该工具类中包含以下功能:对象转JSON.数据 ...
- 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类
在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...
- oracleHelper 操作帮助类
using System; using System.Configuration; using System.Data; using System.Collections; using Oracle. ...
- Java反射机制demo(六)—获得并操作一个类的属性
Java反射机制demo(六)—获得并操作一个类的属性 获得并操作一个类的属性?! 不可思议啊,一个类的属性一般都是私有成员变量啊,private修饰符啊! 但是毫无疑问,这些东西在Java的反射机制 ...
- 第三百零七节,Django框架,models.py模块,数据库操作——表类容的增删改查
Django框架,models.py模块,数据库操作——表类容的增删改查 增加数据 create()方法,增加数据 save()方法,写入数据 第一种方式 表类名称(字段=值) 需要save()方法, ...
- 五 Django框架,models.py模块,数据库操作——表类容的增删改查
Django框架,models.py模块,数据库操作——表类容的增删改查 增加数据 create()方法,增加数据 save()方法,写入数据 第一种方式 表类名称(字段=值) 需要save()方法, ...
随机推荐
- day18 python之re模块与正则表达式
正则表达式 正则表达式,就是匹配字符串内容的一种规则. 官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串 ...
- SRD_PreloaderCore
预加载 Preloader CoreVersion 1.10SumRndmDde This plugin requires the Game Upgrade plugin:http://sumrndm ...
- netsh禁用启用本地连接
netsh interface set interface mi8 disablednetsh interface set interface mi8 enabled mi8是本地连接名称,需要管理员 ...
- Java-线程间通信小结
1)方法wait的作用是使当前执行代码的线程进行等待,将当前线程置入预执行队列,并且在wait所在代码行处停止执行,直到接到通知或者中断.在wait之前,要获得一个对象锁,即wait只能在同步方法/块 ...
- asp.net处理机制管道事件
自定义的托管模块HTTP模块可以向System.Web.HttpApplication对象注册下面一系列事件: AcquireRequestState 当ASP.NET运行时准备好接收当前HTTP请求 ...
- 如何在页面上同时使用 jQuery 和其他框架?
Query 和其他 JavaScript 框架 正如您已经了解到的,jQuery 使用 $ 符号作为 jQuery 的简写. 如果其他 JavaScript 框架也使用 $ 符号作为简写怎么办? 其他 ...
- js 获取屏幕或元素宽高...
窗口相对于屏幕顶部距离 window.screenTop 窗口相对于屏幕左边距离 window.screenLeft, 屏幕分辨率的高 window.screen.height, 屏幕分辨率的宽 wi ...
- RHCE
RHCE 配置 配置firewalld防火墙 配置firewalld端口转发 自定义用户环境 配置链路聚合 配置IPV6地址 配置本地邮件服务
- win10优化
1. 关闭磁盘碎片整理.自动维护计划任务 磁盘C-属性–工具–对驱动器进行优化和碎片整理–优化–更改设置–取消选择按计划运行 2. 关闭Windows Defender 控制面板–Wind ...
- 网易cetus数据库中间件安装-读写分离版本
安装前提:1.数据库主从关系要做好:2.授权用户登录要做好:3.mysql最大连接数设置好,不然会报连接错误:4.版本最好是5.6以上. 1.安装依赖 yum install cmake gcc gl ...