根据传智写的SqlHelper

  1 using System;
  2 using System.Configuration;
  3 using System.Data;
  4 using System.Data.SqlClient;
  5
  6 namespace ADO连接数据库
  7 {
  8     public static class SqlHelper
  9     {
 10         //首先是连接字符串
 11         private static readonly string Strcon = ConfigurationManager.ConnectionStrings["mssqlserver"].ConnectionString;
 12
 13         /// <summary>
 14         /// 增删改返回单条无内容ExcuteNonQuery方法
 15         /// </summary>
 16         /// <param name="sql">Sql执行语句</param>
 17         /// <param name="pms">传入变量</param>
 18         /// <returns></returns>
 19         public static int ExcuteNonQuery(string sql, params SqlParameter[] pms)
 20         {
 21             using (SqlConnection con = new SqlConnection(Strcon))
 22             {
 23                 using (SqlCommand cmd = new SqlCommand(sql, con))
 24                 {
 25                     if (pms != null)
 26                     {
 27                         cmd.Parameters.AddRange(pms);
 28                     }
 29                     con.Open();
 30                     return cmd.ExecuteNonQuery();
 31                 }
 32             }
 33         }
 34
 35         /// <summary>
 36         /// 查询返回单条数据内容ExcuteScalar方法
 37         /// </summary>
 38         /// <param name="sql">Sql执行语句</param>
 39         /// <param name="pms">传入参数</param>
 40         /// <returns></returns>
 41         public static object ExcuteScalar(string sql, params SqlParameter[] pms)
 42         {
 43             using (SqlConnection con = new SqlConnection(Strcon))
 44             {
 45                 using (SqlCommand cmd = new SqlCommand(sql, con))
 46                 {
 47                     if (pms != null)
 48                     {
 49                         cmd.Parameters.AddRange(pms);
 50                     }
 51                     con.Open();
 52                     return cmd.ExecuteScalar();
 53                 }
 54             }
 55         }
 56         /// <summary>
 57         /// 查询Reader方法
 58         /// </summary>
 59         /// <param name="sql">Sql执行语句</param>
 60         /// <param name="pms">传入参数</param>
 61         /// <returns></returns>
 62         public static SqlDataReader Reader(string sql, params SqlParameter[] pms)
 63         {
 64             SqlConnection con = new SqlConnection(Strcon);
 65             using (SqlCommand cmd = new SqlCommand(sql, con))
 66             {
 67                 if (pms != null)
 68                 {
 69                     cmd.Parameters.AddRange(pms);
 70                 }
 71                 try
 72                 {
 73                     con.Open();
 74                     return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
 75                 }
 76                 catch (Exception)
 77                 {
 78                     con.Close();
 79                     con.Dispose();
 80                     throw;
 81                 }
 82             }
 83         }
 84         /// <summary>
 85         /// DataTable方法
 86         /// </summary>
 87         /// <param name="sql">Sql执行语句</param>
 88         /// <param name="pms">可变Sql参数</param>
 89         /// <returns></returns>
 90         public static DataTable Adapter(string sql, params SqlParameter[] pms)
 91         {
 92             DataTable dt = new DataTable();
 93             using (SqlDataAdapter adapter = new SqlDataAdapter(sql, Strcon))
 94             {
 95                 if (pms != null)
 96                 {
 97                     adapter.SelectCommand.Parameters.AddRange(pms);
 98                 }
 99                 adapter.Fill(dt);
100             }
101             return dt;
102         }
103     }
104 }

PS:需要引用一个配置文件
1 <?xml version="1.0" encoding="utf-8" ?>
2 <configuration>
3   <connectionStrings>
4     <add connectionString="Data Source=DESKTOP-B0QVA84;Catalog=MyfirstOne;Integrated Security=True" name="mssqlserver" />
5   </connectionStrings>
6 </configuration>

原文地址:https://www.cnblogs.com/sighful/p/8595226.html

时间: 2024-08-02 16:40:43

根据传智写的SqlHelper的相关文章

自学.net(1)手写一个sqlhelper类

自学.net已经快一个月了,看的是传智播客的视频,今天正好申请了博客,就先把手写的sqlhelper类上传上去吧 别忘了在解决方案管理器的“引用”添加System.Configuration 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Configuration; 6 using System.Data.SqlClient;

[原创]如何写好SqlHelper

所有写数据库应用的都会遇到SqlHelper.每个人实现的也不同,网上现成的例子也很多.但在实际操作中,大部分都不实用.什么样的才是实用的?答:适合应用场景的! 下面来介绍下我写的一个关于Oracle的SqlHelper.没有进行大规模及性能测试. 首先来说下为什么写这个SqlHelper.在以往的桌面程序开发中,我遇到最多的Sql操作,一般不会涉及多个表同时操作,即使有,在使用SqlHelper时用一个Transaction就可以了. 但现在场景换了.在Web里我们将业务操作与具体数据库操作分

[原创]如何写好SqlHelper 之终章

精简的美丽...... 标题有点大.但是,我觉得99%的接近了. 好了,下面我们来说说一个SqlHelper为了适应各种不同的业务需要,它应该具备哪些基本要素. 第一点.可控的事务. 事务是数据库操作的关键部分,在对数据库进行插入.修改.删除时都会用到:事务是基于数据库连接的.一个事务必须要运行在一个连接上,但一个连接上可以有多个事务. 可控的事务就是你在进行数据的增删改时需要一个事务来进行辅助,当操作出错时将修改的数据还原.类似下面的过程 transaction.begin(); ...do

自己写的SqlHelper,提示在调用&quot;Fill&quot;前,SelectCommand 属性尚未初始化.错误

namespace 操作数据{    class SqlHelper    {        public DataSet SqlTODs(string cmdstring)        {            DataSet ds = new DataSet();            try            {                string sqlstring = System.Configuration.ConfigurationManager.Connection

php 根据传上来的信息,页面做出部分不同的显示

<?php $con = mysql_connect( "127.0.0.1", "xxxx", "password" ); mysql_query("set names 'utf8' "); mysql_query("set character_set_client=utf8"); mysql_query("set character_set_results=utf8"); if

Java-IO流之BufferedReader 和BufferedWriter的使用和原理

BufferedReader和BufferedWriter出现的目的是为了对FileReader以及FileWriter的读写操作进行增强,而怎么增强呢,原理类似于使用StringBuilder,是把数据先放入他们的一个char数组中,然后再操作char数组. 使用缓冲区的字符流是使用了装饰着模式对FileReader等进行功能上的增强,装饰者模式与继承都可以实现功能上的增强,但是装饰者可以做得更加的灵活,也不会使继承树变得太过复杂. 以下是BufferedWriter源码的一小部分 publi

mybatis 简单入门

<pre class="html" name="code">1.1 创建测试项目,普通java项目或者是JavaWeb项目均可 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUUAAAIhCAYAAADZ+aiMAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAF9TSURBVHhe7

工厂设计模式究竟怎么写更优雅?!

闲来无事看了菜鸟教程的设计模式.看到了一个很有趣的讨论,该讨论是关于工厂设计模式的书写形式.下面先看一下给出的基础写法,然后再看一下各位网友的优化. 工厂设计模式初衷:我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象.即只需要告诉接口想要获取对象的类型,然后接口就会创建好该类型对应的对象,并返回. 类图如: 根据上面的类图,可以给出如下实现: 1.首先创建shape.java接口 public interface Shape { void draw();

设计模式 - 动态代理原理及模仿JDK Proxy 写一个属于自己的动态代理

本篇文章代码内容较多,讲的可能会有些粗糙,大家可以选择性阅读. 本篇文章的目的是简单的分析动态代理的原理及模仿JDK Proxy手写一个动态代理以及对几种代理做一个总结. 对于代理模式的介绍和讲解,网上已经有很多优质的文章,我这里就不会再过多的介绍了,这里推荐几篇优质的文章作为参考: 给女朋友讲解什么是代理模式 轻松学,Java 中的代理模式及动态代理 另外,我的 github 仓库对应目录中也有相关的基础示例代码:https://github.com/eamonzzz/java-advance