c#中sqlhelper类的编写(一)

  在.net平台的项目开发中,凡是用到数据库交互的,都有必要了解SqlHelper类的原理.

  步骤一:

    我就拿WPF项目开发作为例子.首先要新建一个App.config(应用程序配置文件).注意,在VS中默认新建的文件名为App1.config.必须要把名字改回来.你不管在App1.config里写什么,项目都不会加载.文件名必须是App.config.当然,如果你做的是web开发,可以新建一个web.config配置文件,原理相同.

    新建这个配置文件用来写入与数据库连接的必要信息.如服务器地址,数据库名称,用户名,密码.

    

1 <configuration>
2     <connectionStrings>
3         <add name="connStr"  connectionString="Data Source=127.0.0.1;Initial Catalog=db_mytest;User Id=user;Password=111"/>
4     </connectionStrings>
5 </configuration>

  步骤二:

    配置文件写好了.现在我们就来写SqlHelper这个类了.

    在写类的时候,一定要思路清晰,知道具体的步骤,按部就班的来.

    首先要做的必然是建立和数据库的连接.然后才是定义增删改查的方法,代码如下.

    

 1 class SqlHelper
 2 {
 3     private string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
 4     public int ExecuteNonQuery(string sql)
 5     {
 6         using(SqlConnection conn = new SqlConnection(connStr))
 7         {
 8             conn.Open();
 9             using(SqlCommand cmd = conn.CreateCommand())
10             {
11                 cmd.CommandText=sql;
12                 return cmd.ExecuteNonQuery();
13             }
14         }
15     }
16 }                                            

    当然了,我只是写了一个增删改的方法,这个方法返回的是一个int型数据,表示表中受影响的行数.下面是查的方法,因为这个方法返回的是对象类型,所以函数的返回类型为object.

public object ExecuteScalar(string sql)
{
    //同样是先建立连接
    using(SqlConnection conn = new SqlConnection(connStr))
    {

        conn.Open(); //打开连接
        using(SqlCommand cmd = conn.CreateCommand())
        {
             cmd.CommandText=sql;
             SqlDataAdapter adapter = new SqlDataAdapter(cmd);
             DataSet dataset = new DataSet();
             adapter.Fill(dataset);
             return dataset;
        }
    }

}       

    当然了,以上只是一个简单的原理.落实到具体项目中还有很多需要弥补的地方.比如防止SQL注入,比如更方便的tabledata 函数返回.我会在后面的文章中仔细讲解.

   

时间: 2024-11-05 20:36:21

c#中sqlhelper类的编写(一)的相关文章

c#中sqlhelper类的编写(二)

上一篇文章讲了简易版的SqlHelper类的编写,我们在这里就上一篇文章末尾提出的问题写出解决方案. sql语句注入攻击已经是众所周知的了.我们如何在C#中保护自己的数据库不被这样的方式攻击呢? 不用担心,c#中已经提供了很好的解决方案,那就是 SqlParameter类. 如何使用它呢? class SqlHelper{ public object ExecuteScalar(string sql,Parameter [] parameters)//这一这里增加了一个参数,是个Paramete

c#中SqlHelper类的编写(三)

下面我们直接用可变长度参数的方式写一个完整的SqlHelper增删改public static int ExecuteNonQuery(string sql,params Parameter[] parameters){ using(SqlConnection conn = new SqlConnection(conStr)) { conn.Open(); using(SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText=sql; cm

SqlHelper类的编写

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Data.SqlClient; 6 using System.Data; 7 using System.Configuration; 8 9 namespace WpfApplication1 10 { 11 public class SqlHelper 12 { 13 priva

ADO.NET复习——自己编写SqlHelper类

今天复习了一次ADO.NET基础,整理一下自己的认为的重点: 编写SqlHelper类,方便我们执行数据库语句,这时可以直接调用封装在SqlHelper类的方法.现在大多数公司面试的时候,给你的面试题都会要你自己手写一个SqlHelper的类,这考的是自己的基本功,如果一个根基不牢固的开发人员,你写的代码肯定好不到哪里去. 下面是SqlHelper的演示代码,一定要熟练: 1 public static SqlHelper 2 { 3 //这里定义一个字符串变量,把数据库连接字符串赋值给它,也可

SqlHelper中SqlHelperParameterCache类的用法介绍

SqlHelper类中提供了三种可以用来管理SqlParameter参数的共享方法.下面来一一讲解: 1.CacheParameterSet 将SqlParameter参数数组存储到本地缓存中 2.GetCacheParameterSet 用于读取缓存中的SqlParameter数组,和上面CacheParameterSet组合使用 3.GetSpSqlparameter 一种重载方法,用于检索指定存储过程中的相应参数(首先查询一次数据库,然后缓存结果,以便将来查询),该方法从缓存中检索存储过程

类在编写过程中的一些注意事项

在编写类的时候我们要很好的把握细节问题,不仅仅要去避免一些明显的错误,更多的是如何形成良好的编程风格.下面我们将从下面的一个例子分析类的编写技巧: class Complex { public: Complex(double real,double imaginary = 0):_real(real),_imaginary(imaginary){ } void operator+(Complex other) { _real =_real +other._real; _imaginary = _

使用C语言为python编写动态模块(3)--在C中实现python中的类

楔子 这次我们来介绍python中的类型在C中是如何实现的,我们在C中创建python的int对象,可以使用PyLong_FromLong.创建python的list对象可以使用PyList_New,那么如何在C中构建一个python中的类呢? 对于构建一个类,我们肯定需要以下步骤: 创建一个类扩展 添加类的参数 添加类的方法 添加类的属性,比如可以设置.获取属性 添加类的继承 解决类的循环引用导致的内存泄露问题和自定义垃圾回收 前面几个步骤是必须的,但是容易把最后一个问题给忽略掉.我们在pyt

机房收费系统中sqlhelper的应用

在接受了三层的思想之后,sqlhelper被传的沸沸扬扬,它给我们的编码带来多少优势.让编码者少花了多少时间.多少精力,等等的赞美之词不绝于耳.自己也是将信将疑的,毕竟自己没有亲身经历,所以没有很大的体会.而如今,自己多次使用了sqlhelper,穿梭在各层之间确实也体会到了它带给我们的简便之处,结合很多人的版本自己编写了属于自己的那一版,以下便是具体代码: <span style="font-family:KaiTi_GB2312;font-size:18px;">Imp

Java中的类和接口

类有两种: 普通类  : 抽象类(abstract): 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量.成员方法和构造方法的访问方式和普通类一样. 由于抽象类不能实例化对象,所以抽象类必须被继承(extends),才能被使用.也是因为这个原因,通常在设计阶段决定要不要设计抽象类. 父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法. 在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口. 抽象方法 如果你想设计这样