原始DBHelper在.Net Core中的使用

DBHelper如何在Net Core应用

  • 前言
    • DBHelper使用关键点
    • 代码示例
  • 尾语

前言

之前有说过,咱要系统的学习.Net Core ,前面发布了一篇征集稿,不过貌似没有收集到啥有用的内容,这就苦逼了,咱自己准备的东西不够多啊。没办法了 只能拆分吧 一小块一小块的讲(手动机智)。咱这可不是水字数啊。毕竟咱不是作家,可能会有点小小的唠叨,还请大家多多见谅啊,话不多说,先从最简单的说起。DBhelper的使用讲讲吧。

DBHelper使用关键点

普通的DBHelper大家都会自己创建,封装,调用。拿在Net Core中有啥不同的么。首先第一步就是 想要使用数据库连接的话 ,你就得引用一下对应的数据包(NuGet包)
我用的数据库市SqlServer 所以啊要引用如下包:
Microsoft.EntityFrameworkCore(3.13)
Microsoft.EntityFrameworkCore.SqlServer(3.13)
小括号对应的是版本,咱目前引用的是最新的。
比如其他人用的是MySql Oracle等的话 可以自己找找
举例:
Microsoft.EntityFrameworkCore.InMemory
Microsoft.EntityFrameworkCore.Sqlite
Pomelo.EntityFrameworkCore.MySql
等。。。
其他的我也不多说了,最最最主要的就是数据库连接字符串的获取了
具体怎么获取看我之前写的一篇文章读取配置文件
读取配置文件

代码示例


using Microsoft.Data.SqlClient;
using NetCoreCode;//我的其他命名空间
using System.Collections.Generic;
using System.Data;

//命名空间随意
    public  class DBHelper: IDBHelper
    {
        //数据库连接字符串
        private static string connectionString = "数据库连接字符串";

        #region   数据库连接处理
        public DataTable GetDataTable(string sql)
        {
            return GetDataTable(sql, new SqlParameter[] { });
        }
        /// 
        /// 获取数据集
        /// 
        /// 执行的SQL语句
        /// 参数信息
        /// 
        public DataTable GetDataTable(string sql, params SqlParameter[] para)
        {
            #region   获取数据集
            DataTable dt = new DataTable();
            List<string> sql2 = new List<string>();
            for (int i = 0; i < para.Length; i++)
            {
                SqlParameter p = para[i];
                sql2.Add(p.ParameterName);
            }

            SqlConnection conn = new SqlConnection(connectionString);
            using (SqlCommand cmd = new SqlCommand(sql, conn))
            {
                cmd.Parameters.AddRange(para);
                SqlDataAdapter sda = new SqlDataAdapter(cmd);
                sda.Fill(dt);
                return dt;
            }
            #endregion
        }


        /// 
        /// 调用存储参数
        /// 
        /// 存储过程的名称
        /// 参数信息
        /// 存储过程返回的表结构信息
        /// 
        public DataSet ExcuteProcedure(string produceName, SqlParameter[] sqlParameter, DataTable dt)
        {
            #region   执行存储过程处理
            DataSet ds = new DataSet();
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = produceName;
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddRange(sqlParameter);
                    cmd.ExecuteNonQuery();

                    //传递过来的空表赋值
                    DataRow dr = dt.NewRow();
                    foreach (DataColumn dc in dt.Columns)
                    {
                        dr[dc.ColumnName] = cmd.Parameters["@" + dc.ColumnName].Value.ToString();
                    }
                    dt.Rows.Add(dr);
                    //为返回的dataset进行赋值
                    ds.Tables.Add(dt);
                }
            }
            return ds;
            #endregion
        }


        /// <summary>
        /// 根据SQL语句查询某一个值
        /// </summary>
        /// <param name="sql">需要查询的SQL语句 例:Select Count(1) from Sys_UsersCity</param>
        /// 返回第一行  第一列
        public string GetOnlyValueBySql(string sql)
        {
            #region  根据SQL语句查询某一个值
            string result = "";
            SqlConnection conn = new SqlConnection(connectionString);
            conn.Open();
            SqlCommand cmd = conn.CreateCommand();
            //需要执行的SQL语句
            cmd.CommandText = sql;
            //ExecuteScalar:执行只返回一个值的SQL命令。
            result = cmd.ExecuteScalar().ToString();
            conn.Dispose();
            conn.Close();
            return result;
            #endregion
        }


        /// 
        /// 根据SQL语句查询某一个值
        /// 
        /// 需要查询的SQL语句 例:Select Count(1) from User,Update  delete等 
        /// 返回第一行  第一列
		public int ExecuteNoneQuery(string sql)
        {
            #region   执行SQL语句信息  返回影响的数量信息
            int result = 0; 
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    result = cmd.ExecuteNonQuery();
                }
            }
            return result;
            #endregion
        }

        #endregion
    }

尾语

好了 ,今天就先说这么多吧,EF架构我算是搞懂了。但是想要灵活一些的配置还需要一些时间进行整理。虽然咱现在也有了自己的练手项目,但是太简单,还需要在仔细雕琢雕琢。内容一点一点的放送给大家。下一步可能会弄个IOC容器,或者工作单元,亦或者配置EF啊。这个嘛 随缘了,咱是一个随缘的博客主。平时处理问题的方法 可以考虑用博客记录一下啊。
对了 还是要多嘴一句,大家有啥想要了解的有关C#知识,咱可以考虑也去学习学习。毕竟了解的越多,咱就发现咱会的越少啊(手动笑哭)

你可能感兴趣的:(学习,后端,数据库访问,c#,数据库)