在项目配置文件中添加数据库连接字符串

  <connectionStrings>
<add connectionString="Data Source=主机;Initial Catalog=数据库名;Persist Security Info=True;User ID=用户名;Password=密码" name="当前连接字符串名称"/>
</connectionStrings>

封装类

    class SqlHelper
{
//获取连接字符串
private readonly static string connectionStr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
/// <summary>
/// 执行sql 增 删 该
/// </summary>
/// <param name="sql"></param>
/// <param name="param"></param>
/// <returns></returns>
public static bool ExecuteNonQuery(string sql, params SqlParameter[] param)
{
int result;
using (SqlConnection con = new SqlConnection(connectionStr))
{
using (SqlCommand cmd = new SqlCommand(sql, con))
{
if (param != null)
{
cmd.Parameters.AddRange(param);
}
try
{
con.Open();
result = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
//如果连接失败,抛出异常,并手动释放资源
con.Close();
con.Dispose();
throw ex;
}
}
con.Close();
}
if (result == )
{
return true;
}
else
{
return false;
}
}
/// <summary>
/// 查询单行单列 或者是统计
/// </summary>
/// <param name="sql"></param>
/// <param name="param"></param>
/// <returns></returns>
public static object ExecuteScalar(string sql, params SqlParameter[] param)
{
using (SqlConnection con = new SqlConnection(connectionStr))
{
using (SqlCommand cmd = new SqlCommand(sql, con))
{
if (param != null)
{
cmd.Parameters.AddRange(param);
}
try
{
con.Open();
return cmd.ExecuteScalar();
}
catch (Exception ex)
{
//如果连接失败,抛出异常,并手动释放资源
con.Close();
con.Dispose();
throw ex;
} }
}
}
/// <summary>
/// 根据条件查询数据
/// </summary>
/// <param name="sql"></param>
/// <param name="param"></param>
/// <returns>SqlDataReader对象</returns>
public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] param)
{
using (SqlConnection con = new SqlConnection(connectionStr))
{
using (SqlCommand cmd = new SqlCommand(sql, con))
{
if (param != null)
{
cmd.Parameters.AddRange(param);
}
try
{
con.Open();
return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
//如果连接失败,抛出异常,并手动释放资源
con.Close();
con.Dispose();
throw ex;
}
}
}
} /// <summary>
/// 根据条件查询数据
/// </summary>
/// <param name="sql"></param>
/// <param name="param"></param>
/// <returns>DataTable对象</returns>
public static DataTable ExcuteTable(string sql, params SqlParameter[] param)
{
using (SqlConnection con = new SqlConnection(connectionStr))
{
DataTable dt = new DataTable(); using (SqlDataAdapter sda = new SqlDataAdapter(sql, connectionStr))
{
if (param != null) {
sda.SelectCommand.Parameters.AddRange(param);
}
sda.Fill(dt);
} return dt;
} }
}

C# 封装SqlHelper的更多相关文章

  1. 封装sqlhelper【一】

    控件信息展示: //定义调用数据库类文件 namespace SqlHelper { public class TblClass { public int classId { get; set; } ...

  2. 数据操作的封装--sqlhelper

    为了提高软件的灵活性和可维护性,软件的代码须要科学的管理.我们引入了架构这个词.设计模式提醒我们,软件中反复性的代码须要封装起来. 近期在做收费系统时.须要和数据库进行频繁的联系.既然是反复的使用,就 ...

  3. 封装SqlHelper

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.C ...

  4. 封装sqlhelper类

    using System;using System.Collections.Generic;using System.Data;using System.Data.Common;using Syste ...

  5. ADO.Net和SqlHelper封装

    1.什么是ADO.Net 简单来讲,ADO.NET是用于和数据源打交道的.Net结束,是一组向.NET程序员公开数据访问服务的类   2.ADO.NET的组成部分和对象模型 (1)ADO.NET的两个 ...

  6. ado.net的简单数据库操作(二)之封装SqlHelperl类

    今天我书接上回,接着昨天的ado.net的数据库操作的相关知识来讲哈! 从上篇文章给出的实例来看,你一定会发现,操作数据库其实还挺麻烦的,就连一个最简单的数据库操作语句都要包括 定义数据库连接字符串. ...

  7. 【整理】待毕业.Net码农就业求职储备

    声明:本文题目来源于互联网,仅供即将从学校毕业的.Net码农(当然,我本人也是菜逼一个)学习之用.当然,学习了这些题目不一定会拿到offer,但是针对就业求职做些针对性的准备也是不错的.此外,除了技术 ...

  8. C#向Sql数据库插入控制

    string name = textBox1.Text; int age = Convert.ToInt32(textBox2.Text.Trim()); ? null : (int?)Convert ...

  9. .net学习总结

    .NET 学前入门 了解.Net能做什么 了解.NET,C#语言及其特点(分清.NET和C#的关系),对.Net学习有系统全面的认识. C#基础 变量,赋值运算符.数据类型转换等. 选择结构控制(if ...

随机推荐

  1. 黑客炼金术士 Seeker:可以攻破 4G 摸到你短信,还要为朝阳群众提供谍战工具

    在北京上地的一家咖啡馆里,我在等待黑客 Seeker 的到来. 我对黑客 Seeker 颇有期待.他曾在黑客大会 KCon 上演讲<伪基站高级利用技术——彻底攻破短信验证码>,介绍利用 L ...

  2. FCC JS基础算法题(11):Seek and Destroy (摧毁数组)

    题目描述: 实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值. 我们可以使用arguments来进行参数的遍历. function destroyer(arr) ...

  3. B-trees

    B-trees are balanced search trees designed to work well on disks or other direct accesssecondary sto ...

  4. 记解决一次“HTTP Error 400. The request URL is invalid”的错误

    今天将图片服务切到使用了cdn的机器上面去,然后就部分图片报如下图错误“HTTP Error 400. The request URL is invalid” 看到这种错误信息,一般的开发者心中可能会 ...

  5. mysql中有关查询的技巧方法

    * 查最高值或者最低值对应行的数据: 查询Score表中的最高分的学生学号和课程号: 两种方法(子查询或者排序): 子查询法:select sno,cno from score where degre ...

  6. ipv4-only网络环境下访问ipv6站点

    使用6plat.org+openVPN(无需资金投入)进入ipv6网络 这里我们主要使用的是6plat.org提供的“46模块——IPv4到IPv6”功能,需要配合openVPN这个软件,支持wind ...

  7. python实现简单的定时任务

    1.首先安装 schedule 模块 命令行安装 pip install schedule pyCharm编辑器安装 File->setting->project:youProject-& ...

  8. python -django 之第三方支付

    神魔是第三方支付: 第三方支付是指具有一定实力和信誉保障的第三方独立机构.通过与各大银行签订合同,建立连接用户和银行支付结算系统的平台,从而实现电子支付模式.从另一个角度来看,第三方支付就是非金融机构 ...

  9. alpha冲刺(6/10)

    前言 队名:旅法师 作业链接 队长博客 燃尽图 会议 会议照片 会议内容 陈晓彬(组长) 今日进展: 召开会议 撰写博客 召集大家分析了一下后续的问题 问题困扰: 工程量太大,这周考试又很多,周末我让 ...

  10. Centos6.8 编译安装Apache2.4

    cetos6.8源码安装apache2.4.29 apache官网:http://httpd.apache.org 具体安装步骤: 1 配置安装apache的基础环境2 下载想要安装的版本源码包3 解 ...