ASP.NET数据库连接类(SqlDBHelper)
第一步:创建一个名为SqlDBHelper的类,用来作为联通数据库和系统之间的桥梁。
第二步:引入命名空间,如果System.Configuration、System.Transcations这两个命名空间找不到,可在项目目录下的【引用】=》添加引用【框架】中找到,添加引用即可。
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Transactions;
第三步:在配置文件中添加数据库连接地址。
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<connectionStrings>
<add name="MES" connectionString="Data Source=数据库IP;Database=数据库名;User ID=用户名;Password=连接密码;" providerName="System.Data.SqlClient;"/>
</connectionStrings>
</configuration>
第四部:在SqlDBHelper中编写读取配置文件中连接数据库字段:
private static readonly string connectionString = ConfigurationManager.ConnectionStrings["MES"].ToString();
如果ConfigurationManager提示错误,同第二步操作即可。
第五步:编写操作Sql命令的方法(增删改查):
public static string DataBase
{
get {
SqlConnection conn = new SqlConnection();
string db = conn.Database; //获取当前数据库或使用的数据库名称
conn.Dispose();
return db;
}
} #region 为SQL命令做提前的参数设定
/// <summary>
/// 为cmd做执行前的参数设定
/// </summary>
/// <param name="cmd">cmd命令对象</param>
/// <param name="conn">连接对象</param>
/// <param name="trans">事务对象</param>
/// <param name="cmdType">命令类型</param>
/// <param name="cmdText">SQL命令文本</param>
/// <param name="cmdParms">在命令文本中要使用的SQL参数</param>
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
if (conn.State != System.Data.ConnectionState.Open) //如果连接通道未打开,则打开连接通道
conn.Open();
cmd.CommandTimeout = ; //等待时间
cmd.Connection = conn; //为命令对象设置连接通道
cmd.CommandText = cmdText; //为命令对象设置SQL文本
if (trans != null) //如果存在事务,则为命令对象设置事务
cmd.Transaction = trans;
cmd.CommandType = cmdType; //设置命令类型(SQL文本/存储过程)
if (cmdParms != null) //如果参数集合不为空,为命令对象添加参数
cmd.Parameters.AddRange(cmdParms); }
#endregion #region sql 增删改
/// <summary>
/// 执行SQL命令 增删改(无参数)
/// </summary>
/// <param name="cmdText">SQL命令语句</param>
/// <returns></returns>
public static int ExecuteCommand(string cmdText) //重载
{
return ExecuteCommand(cmdText,null);
} /// <summary>
/// 执行SQL命令 增删改(带参数)
/// </summary>
/// <param name="cmdText">SQL命令语句</param>
/// <param name="parameters">参数</param>
/// <returns></returns>
public static int ExecuteCommand(string cmdText, SqlParameter[] parameters)
{
return ExecuteCommand(cmdText,CommandType.Text,parameters);
} /// <summary>
/// 执行SQL命令 增删改(带参数)
/// </summary>
/// <param name="cmdText">SQL命令</param>
/// <param name="cmdType">命令类型</param>
/// <param name="commandParameters">参数集合</param>
/// <returns></returns>
public static int ExecuteCommand(string cmdText, CommandType cmdType, params SqlParameter[] commandParameters)
{
using (TransactionScope transcation = new TransactionScope()) //TransactionScope 使代码块成为事务性代码
{
int res = ;
try
{
SqlCommand cmd = new SqlCommand();
using (SqlConnection conn = new SqlConnection(connectionString))
{
PrepareCommand(cmd,conn,null,cmdType,cmdText,commandParameters); res = cmd.ExecuteNonQuery(); //执行SQL并返回受影响的行数
transcation.Complete(); //指示范围内的操作都已经完成
}
}
catch (Exception ex)
{
throw ex;
}
return res;
}
} /// <summary>
/// 执行SQL命令 增删改
/// </summary>
/// <param name="cmdText">SQL命令</param>
/// <param name="trans">事务对象</param>
/// <param name="cmdType">命令类型</param>
/// <param name="parameters">命令参数</param>
/// <returns></returns>
public static int ExecuteCommand(string cmdText, SqlTransaction trans, CommandType cmdType, SqlParameter[] parameters)
{
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd,trans.Connection,trans,cmdType,cmdText,parameters);
int res = ;
try
{
res = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
cmd.Parameters.Clear();
return res;
}
#endregion #region sql 查询操作
/// <summary>
/// 执行SQL命令 查询
/// </summary>
/// <param name="sqlStr">SQL命令语句</param>
/// <returns></returns>
public static DataTable GetDataTable(string sqlStr)
{
return GetDataTable(sqlStr,null);
} /// <summary>
/// 执行SQL命令 查询
/// </summary>
/// <param name="sqlStr">SQL命令</param>
/// <param name="parameters">参数集合</param>
/// <returns></returns>
public static DataTable GetDataTable(string sqlStr, SqlParameter[] parameters)
{
return GetDataTable(sqlStr,CommandType.Text,parameters);
} /// <summary>
/// 执行SQL命令
/// </summary>
/// <param name="sqlStr">SQL命令</param>
/// <param name="cmdType">命令类型</param>
/// <param name="parameters">参数集合</param>
/// <returns></returns>
public static DataTable GetDataTable(string sqlStr, CommandType cmdType, SqlParameter[] parameters)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(sqlStr,connection);
cmd.CommandTimeout = ;
cmd.CommandType = cmdType;
if (parameters != null)
cmd.Parameters.AddRange(parameters);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
try
{
da.Fill(dt);
}
catch (Exception ex)
{
throw ex;
}
cmd.Parameters.Clear();
return dt;
}
} public static DataTable GetDataTable(string sqlStr,string con,int i)
{
SqlConnection conn = new SqlConnection(con);
conn.Open();
SqlCommand cmd = new SqlCommand(sqlStr,conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
conn.Close();
cmd.Dispose();
da.Dispose();
return dt;
} /// <summary>
/// 执行SQL 查询
/// </summary>
/// <param name="cmdText">SQL命令语句</param>
/// <returns></returns>
public static object GetScalar(string cmdText)
{
return GetScalar(cmdText,null);
} /// <summary>
/// 执行SQL 查询
/// </summary>
/// <param name="cmdText">SQL命令</param>
/// <param name="parameters">参数集合</param>
/// <returns>第一行第一列(object类型)</returns>
public static object GetScalar(string cmdText, SqlParameter[] parameters)
{
return GetScalar(cmdText,CommandType.Text,parameters);
} /// <summary>
/// 执行SQL 查询
/// </summary>
/// <param name="cmdText">SQL命令</param>
/// <param name="cmdType">命令类型</param>
/// <param name="parameters">参数集合</param>
/// <returns>第一行第一列的值(object类型)</returns>
public static object GetScalar(string cmdText, CommandType cmdType, SqlParameter[] parameters)
{
object res = ;
SqlCommand cmd = new SqlCommand();
using (SqlConnection conn = new SqlConnection(connectionString))
{
PrepareCommand(cmd,conn,null,cmdType,cmdText,parameters);
try
{
res = cmd.ExecuteScalar();
}
catch(Exception ex)
{
throw ex;
}
cmd.Parameters.Clear();
return res;
}
} public static void Insert_NewData(DataTable dt, string tableName)
{
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(connectionString,SqlBulkCopyOptions.UseInternalTransaction);
sqlBulkCopy.DestinationTableName = tableName;//数据库中的表名 sqlBulkCopy.WriteToServer(dt);
sqlBulkCopy.Close();
}
#endregion
至此,SqlDBHelper类完成,在需要时直接调用即可。
ASP.NET数据库连接类(SqlDBHelper)的更多相关文章
- C#-数据库访问技术 ado.net——创建 数据库连接类 与 数据库操作方法 以及简单的数据的添加、删除、修改、查看
数据库访问技术 ado.net 将数据库中的数据,提取到内存中,展示给用户看还可以将内存中的数据写入数据库中去 并不是唯一的数据库访问技术,但是它是最底层的数据库访问技术 1.创建数据库,并设置主外键 ...
- JSP 数据库连接类 MySql数据库
数据库连接类的主要功能是连接数据库并且获得连接对象,以及关闭数据库.通过创建该类的实例,调用其中的方法,以避免重复操作. package chapter13; import java.sql.*; p ...
- 【转】ASP.NET数据库连接字符串总结
来源:http://blog.csdn.net/lutinghuan/article/details/5973897 ASP.NET数据库连接字符串总结 一.使用OleDbConnection对象连接 ...
- DAO设计模式 -- 使用数据库连接类连接MySql数据库并实现添加用户
1. DAO简介 DAO设计模式是属于J2EE数据库层的操作,使用DAO设计模式可以简化大量代码,增强程序的可移植性. 2. DAO各部分详解 DAO设计模式包括5个重要的部分,分别为数据 ...
- [转]ASP.NET数据库连接字符串总结
这个不难,而且很重要,但总忘,找了篇比较全的,作为资料. 原文链接http://developer.51cto.com/art/201107/275406.htm 关于数据库链接字符串的相关知识,我们 ...
- 自己写的Python数据库连接类和sql语句拼接方法
这个工具类十分简单和简洁. sql拼接方法 # encoding=utf-8 from django.http import HttpResponse from anyjson import seri ...
- IIS7.5 asp+access数据库连接失败处理 64位系统
IIS7.5 asp+access数据库连接失败处理(SRV 2008R2 x64/win7 x64) IIS7.5不支持oledb4.0驱动?把IIS运行模式设置成32位就可以了,微软没有支持出64 ...
- java数据库连接类,已经把数据库操作的方法都封装好了
在这里分享一个已经封装好了的java数据库连接类,只要创建对象就可以实现数据库的增删改查操作,用过都说好.其实这个不是我自己写的,是一个理解和学习能力超高的朋友写的,他也很乐于分享交流,本人也深受他的 ...
- ASP.NET Cache 类
在查找资料的过程中.原来园子里面已经有过分析了.nopCommerce架构分析系列(二)数据Cache. 接下来是一些学习补充. 1.Nop中没有System.Web.Caching.Cache的实现 ...
随机推荐
- Mysql忘记密码,支持中文,tab补全
忘记Mysql密码: (1)暂停服务: /etc/init.d/mysqld stop (2)跳过grant表授权,进入安全模式,并在后台运行: mysqld_safe --skip-grant-ta ...
- kubernetes发布tomcat服务,通过deployment,service布署(转)
1.制作tomcat镜像 参考docker tomcat镜像制作 此处直接拉取 查看已有可镜像 先设置docker阿里源,即添加 "registry-mirrors": [&quo ...
- SpringMVC中实现Bean Validation(JSR 303 JSR 349 JSR 380)
JSR 303是针对bean数据校验提出的一个规范.使用注解方式实现数据校验. 每个注解的用法这里就不多介绍,请移步JSR 303 - Bean Validation 介绍及最佳实践 笔者上面提到的J ...
- Linux学习—maven安装
1.下载maven安装包 cd /usr/local/ wget http://mirror.bit.edu.cn/apache/maven/maven-//binaries/apache-maven ...
- Docker Windows
docker windows 操作和linux上稍有些差异,主要是在启动容器时的命令参数 和 端口映射. 1.下载docker-toolbox http://mirrors.aliyun.com/do ...
- docker 导出多个镜像合并成一个tar
导出单个镜像 docker save [images] > [name.tar] 倒出多个镜像合并成一个tar包 docker save [images] [images] > [name ...
- 【POJ - 3685】Matrix(二分)
Matrix Descriptions 有一个N阶方阵 第i行,j列的值Aij =i2 + 100000 × i + j2 - 100000 × j + i × j,需要找出这个方阵的第M小值. In ...
- RAID冗余磁盘阵列的创建
RAID 0 :条带化,数据被拆分到多个驱动中,写速度最快,但并没有数据镜像或校验信息. RAID 1 :镜像化,完全磁盘镜像,在独立磁盘上创建数据的两份拷贝,这个级别提供最好的数据安全,但写速度慢. ...
- 剑指offer_斐波那契数列
package solution; public class Fibonacci { /* * f(n) = f(n-1) + f(n-2) n>1 * f(0) = 0 * f(1) = 1 ...
- Spring自定义参数解析器
结合redis编写User自定义参数解析器UserArgumentResolver import javax.servlet.http.Cookie; import javax.servlet.htt ...