黑马程序员技术交流社区

标题: SQLHelper [打印本页]

作者: iamheima    时间: 2012-9-17 12:40
标题: SQLHelper
一般为了方便我们在程序中做数据操作,都会封装一个SQLHelper的类,在这里分享一下我写的SQLHelper,并分析一下里面的代码。
  1. public class SQLHelper
  2.     {
  3.        //用于获取连接字符串的属性
  4.        public string ConnectionString
  5.        {
  6.            get {
  7.               return ConfigurationManager.ConnectionStrings["myConnString"].ConnectionString;
  8.            }
  9.        }
  10.        /// <summary>
  11.        /// 执行sql返回指定名称的datatable对象
  12.        /// </summary>
  13.        /// <param name="sql">"select * from T_..."</param>
  14.        /// <param name="paras">sql或存储过程的参数</param>
  15.        /// <param name="tbName">返回的datatable名称</param>
  16.        /// <param name="type">命令类型</param>
  17.        /// <returns></returns>
  18.        public DataTable ExecuteSqlReturnTable(string sql, SqlParameter[] paras,string  tbName, CommandType type=CommandType.Text )
  19.        {
  20.            DataTable table;
  21.            SqlConnection conn = new SqlConnection(ConnectionString);
  22.            SqlCommand cmd = conn.CreateCommand();
  23.            cmd.CommandText = sql;
  24.            if (paras != null && paras.Length > 0)
  25.            {
  26.                foreach (SqlParameter p in paras)
  27.                {
  28.                    cmd.Parameters.Add(p);
  29.                }
  30.            }
  31.            cmd.CommandType = type;
  32.            SqlDataAdapter sda = new SqlDataAdapter(cmd);

  33.            if (tbName != null)
  34.            {
  35.                table = new DataTable(tbName);
  36.            }
  37.            else {
  38.                table = new DataTable();
  39.            }

  40.            sda.Fill(table);

  41.            return table;
  42.        }

  43.        /// <summary>
  44.        /// 执行非查询的sql或存储过程
  45.        /// </summary>
  46.        /// <param name="sql">sql语句或存储过程</param>
  47.        /// <param name="paras">执行命令所需的参数</param>
  48.        /// <param name="type">命令类型,默认是text</param>
  49.        /// <returns>表示执行是否成功</returns>
  50.        public bool ExecuteNonQuery(string sql,SqlParameter[] paras,CommandType type=CommandType.Text)
  51.        {
  52.            bool result = false;

  53.            SqlConnection conn = new SqlConnection(ConnectionString);

  54.            SqlCommand cmd = new SqlCommand(sql, conn);
  55.            cmd.CommandType = type;

  56.            if (paras != null && paras.Length > 0)
  57.            {
  58.                foreach (SqlParameter p in paras)
  59.                {
  60.                    cmd.Parameters.Add(p);
  61.                }
  62.            }

  63.            conn.Open();
  64.            if (cmd.ExecuteNonQuery() > 0)
  65.            {
  66.                result = true;
  67.            }

  68.            return result;
  69.        }

  70.     }
复制代码
1.ConfigurationManager类,这是一个static类,提供对客户端应用程序配置文件的访问,其Static属性ConnectionStrings用来获取当前应用程序默认配置的连接字符串;
2.ExecuteSqlReturnTable函数,封装的第一个函数,用来执行存储过程或sql语句并返回一个Datatable对象;
3.ExecuteNonQuery函数,用来执行非查询的数据操作,如插入、修改和删除,返回一个bool的值类型表示操作是否成功。

作者: 许庭洲    时间: 2012-9-17 13:30
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2