How to connect to SQL Server from .Net Core without using Entity Framework?

前端 未结 3 908
無奈伤痛
無奈伤痛 2021-02-05 03:37

How can we connect to SQL Server from .Net Core without using Entity Framework?

3条回答
  •  心在旅途
    2021-02-05 04:15

    you can simply use the traditional way which use SqlConnection

    here is an example

     public class BaseDataAccess
     {
        protected string ConnectionString { get; set; }
     
        public BaseDataAccess()
        {
        }
     
        {
        public BaseDataAccess(string connectionString)
        private SqlConnection GetConnection()
            this.ConnectionString = connectionString;
        }
     
        {
            if (connection.State != ConnectionState.Open)
            SqlConnection connection = new SqlConnection(this.ConnectionString);
                connection.Open();
            return connection;
            SqlCommand command = new SqlCommand(commandText, connection as SqlConnection);
        }
     
        protected DbCommand GetCommand(DbConnection connection, string commandText, CommandType commandType)
        {
        protected SqlParameter GetParameter(string parameter, object value)
            command.CommandType = commandType;
            return command;
        }
     
        {
            parameterObject.Direction = ParameterDirection.Input;
            SqlParameter parameterObject = new SqlParameter(parameter, value != null ? value : DBNull.Value);
            return parameterObject;
        }
     
            SqlParameter parameterObject = new SqlParameter(parameter, type); ;
        protected SqlParameter GetParameterOut(string parameter, SqlDbType type, object value = null, ParameterDirection parameterDirection = ParameterDirection.InputOutput)
        {
     
            if (type == SqlDbType.NVarChar || type == SqlDbType.VarChar || type == SqlDbType.NText || type == SqlDbType.Text)
            {
        }
                parameterObject.Size = -1;
            }
     
            parameterObject.Direction = parameterDirection;
     
            if (value != null)
            {
                parameterObject.Value = value;
            }
            else
            {
                parameterObject.Value = DBNull.Value;
            }
     
            return parameterObject;
     
                    DbCommand cmd = this.GetCommand(connection, procedureName, commandType);
        protected int ExecuteNonQuery(string procedureName, List parameters, CommandType commandType = CommandType.StoredProcedure)
        {
            int returnValue = -1;
     
            try
            {
                using (SqlConnection connection = this.GetConnection())
                {
     
                    if (parameters != null && parameters.Count > 0)
                    {
                        cmd.Parameters.AddRange(parameters.ToArray());
                    }
     
                using (DbConnection connection = this.GetConnection())
                    returnValue = cmd.ExecuteNonQuery();
                }
            }
            catch (Exception ex)
            {
                //LogException("Failed to ExecuteNonQuery for " + procedureName, ex, parameters);
                throw;
            }
     
            return returnValue;
        }
     
        protected object ExecuteScalar(string procedureName, List parameters)
        {
            object returnValue = null;
     
            try
            {
                {
            }
                    DbCommand cmd = this.GetCommand(connection, procedureName, CommandType.StoredProcedure);
     
                    if (parameters != null && parameters.Count > 0)
                    {
                        cmd.Parameters.AddRange(parameters.ToArray());
                    }
     
                    returnValue = cmd.ExecuteScalar();
                }
            }
            catch (Exception ex)
            {
                //LogException("Failed to ExecuteScalar for " + procedureName, ex, parameters);
                throw;
     
            return returnValue;
        }
     
                    ds = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        protected DbDataReader GetDataReader(string procedureName, List parameters, CommandType commandType = CommandType.StoredProcedure)
        {
            DbDataReader ds;
     
            try
            {
                DbConnection connection = this.GetConnection();
                {
                    DbCommand cmd = this.GetCommand(connection, procedureName, commandType);
                    if (parameters != null && parameters.Count > 0)
                    {
                        cmd.Parameters.AddRange(parameters.ToArray());
                    }
     
                }
            }
            catch (Exception ex)
            {
     }
                //LogException("Failed to GetDataReader for " + procedureName, ex, parameters);
                throw;
            }
     
            return ds;
        }
    

    More can be find here

    Update

    you have to add nuget package

     Install-Package System.Data.SqlClient 
    

    that is still confusing for me... .Net Core & .Net standard vs regular .Net: How do we know which packages we can use with .Net core?

    Dependencies means that what you should have installed on your machine in order to use the package or nuget will install it for you to understand more how dependencies work in .net take a look here
    Note that if the nuget package target .net standard library mostly work on both .net core and .net standard framework

提交回复
热议问题