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

  步骤一:

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

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

    

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

  步骤二:

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

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

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

    

 class SqlHelper
{
private string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
public int ExecuteNonQuery(string sql)
{
using(SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using(SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText=sql;
return cmd.ExecuteNonQuery();
}
}
}
}

    当然了,我只是写了一个增删改的方法,这个方法返回的是一个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 函数返回.我会在后面的文章中仔细讲解.

   

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

  1. c#中sqlhelper类的编写(二)

    上一篇文章讲了简易版的SqlHelper类的编写,我们在这里就上一篇文章末尾提出的问题写出解决方案. sql语句注入攻击已经是众所周知的了.我们如何在C#中保护自己的数据库不被这样的方式攻击呢? 不用 ...

  2. c#中SqlHelper类的编写(三)

    下面我们直接用可变长度参数的方式写一个完整的SqlHelper增删改public static int ExecuteNonQuery(string sql,params Parameter[] pa ...

  3. Mybatis 中实体类的编写

    一个实体类对应一个数据表 一个属性对应一个字段 默认情况下类名和属性名都采用 “下划线转驼峰” 的命名方式.但具体采用什么样的命名方式并不重要(方式一致即可),在后面使用这些对象的时候,可以通过 re ...

  4. SqlHelper类的编写

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

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

    今天复习了一次ADO.NET基础,整理一下自己的认为的重点: 编写SqlHelper类,方便我们执行数据库语句,这时可以直接调用封装在SqlHelper类的方法.现在大多数公司面试的时候,给你的面试题 ...

  6. 22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表。然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法showB输出大写的英文字母表。最后编写主类C,在主类的main方法 中测试类A与类B。

    22.编写一个类A,该类创建的对象可以调用方法showA输出小写的英文字母表.然后再编写一个A类的子类B,子类B创建的对象不仅可以调用方法showA输出小写的英文字母表,而且可以调用子类新增的方法sh ...

  7. XCode中的单元测试:编写测试类和方法(内容意译自苹果官方文档)

    当你在工程中通过测试导航栏添加了一个测试target之后, xcode会在测试导航栏中显示该target所属的测试类和方法. 这一章演示了怎么创建测试类,以及如何编写测试方法. 测试targets, ...

  8. SqlHelper中SqlHelperParameterCache类的用法介绍

    SqlHelper类中提供了三种可以用来管理SqlParameter参数的共享方法.下面来一一讲解: 1.CacheParameterSet 将SqlParameter参数数组存储到本地缓存中 2.G ...

  9. Struts2 | struts.xml文件中使用method属性和通配符简化action标签和Action处理类的编写

    转自:https://www.jianshu.com/p/310e89ee762d 在Struts2框架中,我们知道基本的Action标签只能实现一个url请求对应一个Action处理类.那么我们如果 ...

随机推荐

  1. 字体的大小(pt)和像素(px)如何转换?

    px:相对长度单位.像素(Pixel). pt:绝对长度单位.点(Point). 1in = 2.54cm = 25.4 mm = 72pt = 6pc 具体换算是: Points Pixels Em ...

  2. cocos2d-x——在一个cpp中展示多个场景

    //20秒后自动运行下一个场景 runAction( CCSequence::create(CCDelayTime::create(20.0f), CCCallFunc::create(this, c ...

  3. SQL Server 调优:set statistics profile on

    进行set statistics profile on 设置后 将会返回执行计划表,通过该表,可以理解语句执行的过程,了解SQL Server是否选择了正确的执行计划,进而确定调优方向! 1.返回表字 ...

  4. GIT免密码PUSH

    摘自:dudu 备忘,感谢! 1. 在Windows中添加一个HOME环境变量,值为%USERPROFILE%,如下图: 2. 在“开始>运行”中打开%Home%,新建一个名为“_netrc”的 ...

  5. 用bash命令得到Windows一个目录下的所有文件并且把结果输入到一个文件

    方式一: 只用如下一条语句就可以了: tree/f>index.txt 放入一个文件中命名为"****.bat" 双击就会在该目录下生成一个index.txt文件,在这个文件 ...

  6. HTML5와 CSS3 적용기

    HTML5의 DTD 선언 <!DOCTYPE html>  HTML5의 인코딩 선언 <meta charset="utf-8">  그리고나서는 새로 ...

  7. ActiveMQ(5.10.0) - Configuring the JAAS Authentication Plug-in

    JAAS provides pluggable authentication, which means ActiveMQ will use the same authentication API re ...

  8. SQL Server 2008下日志清理方法

    1.将数据库设置成 简单 模式 选择要收缩的数据库,点右键 属性->选项,选择 简单模式 2.选择任务->收缩->文件 3.选择日志

  9. 关于对XE7中introduced in an ancestor and cannot be deleted的解决方案

    在Delphi XE7中设计Multi-Device Application 类型窗体中,发现删除一个组件时,提示introduced in an ancestor and cannot be del ...

  10. Cocos移植到Android-使用Eclipse交叉编译打包

    如果对命令行望而生畏,我们可以借助于安装有ADT插件的Eclipse工具实现交叉编译.使用Eclipse进行交叉编译,首先需要将要编译的工程导入到Eclipse的Workspace中,Workspac ...