应用需求

在日常的项目开发中,我们经常会遇到统计某个字段的值,计算总数等的需求确定。这个时候就需要我们的类库中支持一种方法 ,直接执行SQL语句并获取值信息进行使用。这边我没有用EF的方式去写 ,EF获取比较便捷,我们这次使用的是直接调用SQL语句获取执行结果的方式 话不多说,贴代码。

代码示例


        /// <summary>
        /// 根据SQL语句查询某一个值
        /// </summary>
        /// <param name="sql">需要查询的SQL语句 例:Select Count(1) from User </param>
        /// <returns>返回第一行  第一列</returns>
		public string GetOnlyValueBySql(string sql)
        {
            string result = "";
            //数据库链接字符串  我是用的自定义的  这个大家随意就好
            SqlConnection conn = dbcontext.Database.Connection as SqlConnection;
            conn.Open();
            SqlCommand cmd = conn.CreateCommand();
            //需要执行的SQL语句
            cmd.CommandText = sql;
            //ExecuteScalar:执行只返回一个值的SQL命令。
            result = cmd.ExecuteScalar().ToString();
            conn.Dispose();
            conn.Close();
            return result;
        }


		/// <summary>
        /// 获取DataSet返回结构集
        /// </summary>
        /// <param name="sql">执行的SQL语句</param>
        /// <param name="para">对应的参数信息</param>
        /// <returns>返回DataSet</returns>
        public DataSet GetDataSet(string sql, params SqlParameter[] para)
        {
            DataSet sd = new DataSet();
            SqlConnection conn = dbcontext.Database.Connection as SqlConnection;
            using (SqlCommand cmd = new SqlCommand(sql , conn))
            {
                cmd.Parameters.AddRange(para);
                SqlDataAdapter sda = new SqlDataAdapter(cmd);
                sda.Fill(sd);
            }
            return sd;
        }


        /// <summary>
        /// 获取DataTable返回表
        /// </summary>
        /// <param name="sql">执行的SQL语句</param>
        /// <param name="para">对应的参数信息</param>
        /// <returns>返回DataTable</returns>
        public DataTable GetDataTable(string sql, params SqlParameter[] para)
        {
            DataTable dt = new DataTable(); 
            SqlConnection conn = dbcontext.Database.Connection as SqlConnection;
            using (SqlCommand cmd = new SqlCommand(sql, conn))
            {
                cmd.Parameters.AddRange(para);
                SqlDataAdapter sda = new SqlDataAdapter(cmd);
                sda.Fill(dt);
                return dt;
            }
        }
 
        

尾语

代码示例部分 一不小心 多添加了几个方法 这个主要是避免自己忘掉 做了一个记录 大家多多见谅啊 顺便回顾一下 使用方法
最后说一下使用场景吧 ,这种情况下,我记得以前经常使用的是WebFrom的模式,到现在的MVC,甚至是.Net Core其实也可以使用,不过应用场景可能就只能是统计那方面上的引用了 ,欢迎大家留言进行评论 我会努力调整的

更多推荐