荒草燃烧

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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;

            }

        }

    }

}

posted on 2015-04-25 10:46  王大仙¥  阅读(160)  评论(0编辑  收藏  举报