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;

}

}

}

}

最新文章

  1. 在 Windows7 上按照 MySQL5.7
  2. 上传和设置Mime类型
  3. EF Codefirst 多对多关系 操作中间表的 增删改查(CRUD)
  4. WebGIS中矢量切图的初步研究
  5. PE注入
  6. [2014.01.27]wfGifAnimator 动画GIF组件 3.0
  7. Java关键字——throws和throw
  8. 字典树(codevs 4189)
  9. C - Fractal(3.4.1)
  10. codevs 1218 疫情控制
  11. ssm框架查询数据并实现分页功能示例
  12. WebDriver 运行模式下使用rc 代码
  13. Linux散列表(二)——宏
  14. 关于SVN配置文件的一个小例子
  15. There is no getter for property named &#39;userId&#39; in &#39;class java.lang.String&#39;
  16. Docker最全教程之Ubuntu下安装Docker(十四)
  17. Apache:SSLCertificateFile:文件不存在或为空(操作系统RHEL7)
  18. C# winform 弹出确认消息框
  19. dbm.error: need &#39;c&#39; or &#39;n&#39; flag to open new db
  20. position和float小结

热门文章

  1. Win下循环进入目录启动执行某任务
  2. SAP 默认的连接端口
  3. 222. Count Complete Tree Nodes
  4. Ubuntu12.04安装中文字体(转)
  5. SVN代码提交冲突解决方案
  6. 黑马程序员——JAVA基础之多线程的安全问题
  7. QAction类详解:
  8. 【转】UVa Problem 100 The 3n+1 problem (3n+1 问题)——(离线计算)
  9. .htaccess中301强制跳转到带www前缀或不带www的域名
  10. 前端页面div float 后高度 height 自适应的问题