SqlHelper这是个cs类文件,将经常使用到的数据库操作写到一个文件下,方便调用,以及减少代码量。使用这个文件的前提是要建立一个app.config文件,并且引用configuration程序集;其中app.config文件如下:

<configuration>
  <connectionStrings>//配置字符串

  //connectionString后面引号里面的是数据库连接字符串,起名为DBconnStr,在SqlHelper中将需要用到

<add name="DBconnStr" connectionString="Data Source=.; Initial Catalog=HRMSYS;User Id=hcrs; Password=******;"/>
  </connectionStrings>
</configuration>

一下是SqlHelper.cs文件

using System;

using System.Collections.Generic;

using System.Configuration;//引用上边提到的配置文件

using System.Data;

using System.Data.SqlClient;

using System.Linq;

using System.Text;

namespace HRMSys.DAL

{

static class SqlHelper

{

public static string ConnStr = ConfigurationManager.ConnectionStrings["DBconnStr"].ConnectionString;

    //DBconnStr代表app.config文件中的的字符串,在此文件中定义一个变量存储DBconnStr字符串,在下文多处将使用到

public static int ExecuteNonQuary(string sql, params SqlParameter[] parameters)//新建方法,对其他文件传过来的sql语句和参数进行处理,

{

using (SqlConnection conn = new SqlConnection(ConnStr))//创建数据库连接

{

conn.Open();打开数据库

using (SqlCommand cmd =conn.CreateCommand())//数据库命令

{

cmd.CommandText = sql;//sql语句

cmd.Parameters.AddRange(parameters);//参数,可为空

return cmd.ExecuteNonQuery();//返回执行结果,ExecuteNonQuery()用于非查询语句,例如插入、删除

}

}

}

    //执行多行多列操作,即类似表格;

public static DataTable ExecutDataTable(string sql, params SqlParameter[] parameters)

{

using(SqlConnection conn=new SqlConnection(ConnStr))

{

conn.Open();

using(SqlCommand cmd=conn.CreateCommand())

{

cmd.CommandText=sql;

cmd.Parameters.AddRange(parameters);

SqlDataAdapter adapter=new SqlDataAdapter(cmd);//将sql语句执行结果临时寄放在adapter中,

DataSet dataset=new DataSet();

adapter.Fill(dataset);//将adapter中的数据全部存放在dataset中

return dataset.Tables[0];//以表的形式返回此组操作的最终结果

}

}

}

public static object ExecuteScalar(string sql,

params SqlParameter[] parameters)

{

using (SqlConnection conn = new SqlConnection(ConnStr))

{

conn.Open();

using (SqlCommand cmd = conn.CreateCommand())

{

cmd.CommandText = sql;

cmd.Parameters.AddRange(parameters);

return cmd.ExecuteScalar();

}

}

}

   //处理非空字段

  //当数据库设置了可空字段时,的操作方式。数据库中可空字段的表示形式为null,但是在.net中不能直接把字符串"null"传进去,而应当使用DBnull.value;

    //同时当从数据库中获取到的字段为空时,在.net下需要以DBnull来判断数据库传过来的是否null。代码如下:

public static object ToDbValue(object value)//传进数据库时的方法

{

if(value==null)

{

return DBNull.Value;

}

else

{

return value;

}

}

public static object FromDbValue(object value)//从数据库导出时的方法

{

if(value==DBNull.Value)

{

return null;

}

else

{

return value;

}

}

}

}

SqlHelper文件复习的更多相关文章

  1. python读文件和写入文件复习

    with open("name.txt",'r') as read_file: for name in read_file: list_name = (name.split(',' ...

  2. Python编程从入门到实践笔记——文件

    Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...

  3. ADO.Net知识总结

    (一)基础知识 ADO.NET: .NET中用来向数据库提交执行SQL语句的一堆类 本机访问直接"Windows验证",但是一般项目中都是单独的数据库服务器,程序在另外一台电脑上连 ...

  4. 31、三层架构、AJAX+FormsAuthentication实现登陆

    三层架构 前段时间公司要求修改一个网站,打开后我疯了,一层没有都是调用的DB接口,遍地的SQL语句,非常杂乱. 什么是三层架构? 三层架构是将整个项目划分为三个层次:表现层.业务逻辑层.数据访问层.目 ...

  5. Android 高仿 频道管理----网易、今日头条、腾讯视频 (可以拖动的GridView)附源码DEMO

    距离上次发布(android高仿系列)今日头条 --新闻阅读器 (二) 相关的内容已经半个月了,最近利用空闲时间,把今日头条客户端完善了下.完善的功能一个一个全部实现后,就放整个源码.开发的进度就是按 ...

  6. 《linux就该这么学》第三节课 第二节命令笔记

    命令笔记 (随笔原创,借鉴请修改) linux系统中一切都是文件 2.4  系统状态的命令:  ifconfig   :    查看系统网卡信息,包括网卡名称,ip地址,掩码,mac地址,收到数据包大 ...

  7. HTML5前端

    Web前端介绍 angular2html 1.HTML (常用标签 网页的基本结构) 2.CSS (常用样式 网页的显示效果) 3.JavaScript (用户交互效果 动态效果) 4.jQuery ...

  8. UI:UICollectionView

    #import "ViewController.h" #import "HeaderView.h" #import "FooterView.h&quo ...

  9. Android 高仿 频道管理----网易、今日头条、腾讯视频 (能够拖动的GridView)附源代码DEMO

    距离上次公布(android高仿系列)今日头条 --新闻阅读器 (二) 相关的内容已经半个月了.近期利用空暇时间,把今日头条client完好了下.完好的功能一个一个所有实现后.就放整个源代码.开发的进 ...

随机推荐

  1. [转载] TCP与UDP对比

    TCP和UDP区别     TCP UDP 是否连接 面向连接 面向非连接 传输可靠性 可靠的 不可靠的 应用场合 传输大量的数据 少量数据 速度 慢 快     OSI 和 TCP/IP 模型在传输 ...

  2. Linux主机硬盘的主要规划

    系统对于硬盘的需求跟刚刚提到的主机开放的服务有关,那么除了这点之外,还有没有其他的注意事项?当然有,那就是数据的分类与数据安全性的考虑,即当主机系统的硬件出现问题时,你的档案数据能否安全的保存. 前篇 ...

  3. Lock锁

    Lock lock = new ReentrantLock(); lock.lock(); try { } finally { } 注意:不要将获取锁的过程写在try块中,因为如果在获取锁(自定义锁的 ...

  4. jquery的ajax异步请求接收返回json数据

    http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...

  5. JavaScript个人学习记录总结(二)——验证表单输入之模式匹配

    该示例检查从文本窗口部件中获取姓名和电话号码这两个表单数据的有效性.当文本框中的值发生变化时,即引发一个change事件,从而可以调用一个函数来检查这两个输入值的格式是否正确. validator.h ...

  6. squid代理服务器搭建及配置

    系统环境:CentOS release 6.5 (Final)(最小化安装) 一.安装squid # yum -y install squid 二.编辑配置文件(正向代理) # vim /etc/sq ...

  7. HTML里的id等属性命名需要注意

    提交 $(function(){ $('#submit').click(function(){ $('#form').submit() }) }) 这里的代码无法完成提交,因为id被命名为submit ...

  8. 【P1203】买花

    我先在已经弱到连高精乘单精都能写错的地步了QAQ 原题: 求一个小于等于N的数M,使得phi(M)/M最小,其中phi(M)是与M互质且比M小的数的个数.例如phi(4)=2,因为1,3和4互质. N ...

  9. Firefox-常用扩展

    抓包: HttpFox,相比 Firebug 在页面跳转或刷新时依旧保持原有数据 常用User-Agent模拟: User Agent Switcher 更改请求头: ModifyHeaders 更改 ...

  10. easyUI之Form(表单)组件

    一.对于在easyui中使用的组件,具有输入.输出功能的使用<input>标签,其它的使用<div>标签. 二.对于<input>标签,在使用过程,将name属性和 ...