Sql server 如何在不使用实体框架的情况下从.Net Core连接到SQL Server?

Sql server 如何在不使用实体框架的情况下从.Net Core连接到SQL Server?,sql-server,.net-core,Sql Server,.net Core,如果不使用实体框架,我们如何从.Net核心连接到SQL Server?您可以简单地使用使用SqlConnection 这里有一个例子 公共类BaseDataAccess { 受保护的字符串连接字符串{get;set;} 公共BaseDataAccess() { } { 公共BaseDataAccess(字符串连接字符串) 私有SqlConnection GetConnection() this.ConnectionString=ConnectionString; } { if(connectio

如果不使用实体框架,我们如何从.Net核心连接到SQL Server?

您可以简单地使用使用
SqlConnection

这里有一个例子

公共类BaseDataAccess
{
受保护的字符串连接字符串{get;set;}
公共BaseDataAccess()
{
}
{
公共BaseDataAccess(字符串连接字符串)
私有SqlConnection GetConnection()
this.ConnectionString=ConnectionString;
}
{
if(connection.State!=ConnectionState.Open)
SqlConnection=newsqlconnection(this.ConnectionString);
connection.Open();
回路连接;
SqlCommand=newsqlcommand(commandText,连接为SqlConnection);
}
受保护的DbCommand GetCommand(DbConnection连接、字符串commandText、CommandType CommandType)
{
受保护的SqlParameter GetParameter(字符串参数、对象值)
command.CommandType=CommandType;
返回命令;
}
{
parameterObject.Direction=ParameterDirection.Input;
SqlParameterObject=新的SqlParameter(参数,值!=null?值:DBNull.value);
返回参数对象;
}
SqlParameterObject=新的SqlParameter(参数,类型);
受保护的SqlParameterGetParameterOut(字符串参数,SqlDbType类型,对象值=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(值!=null)
{
parameterObject.Value=Value;
}
其他的
{
parameterObject.Value=DBNull.Value;
}
返回参数对象;
DbCommand cmd=this.GetCommand(连接、过程重命名、命令类型);
受保护的int ExecuteOnQuery(字符串过程重命名,列表参数,CommandType CommandType=CommandType.StoredProcess)
{
int returnValue=-1;
尝试
{
使用(SqlConnection=this.GetConnection())
{
if(parameters!=null&¶meters.Count>0)
{
cmd.Parameters.AddRange(Parameters.ToArray());
}
使用(DbConnection=this.GetConnection())
returnValue=cmd.ExecuteNonQuery();
}
}
捕获(例外情况除外)
{
//LogException(“无法执行”+procedureName,ex,parameters的ExecuteNonQuery);
投掷;
}
返回值;
}
受保护对象ExecuteScalar(字符串过程重命名,列出参数)
{
对象返回值=null;
尝试
{
{
}
DbCommand cmd=this.GetCommand(连接、过程重命名、CommandType.StoredProcedure);
if(parameters!=null&¶meters.Count>0)
{
cmd.Parameters.AddRange(Parameters.ToArray());
}
returnValue=cmd.ExecuteScalar();
}
}
捕获(例外情况除外)
{
//LogException(“未能为“+procedureName,ex,parameters”执行Calar);
投掷;
返回值;
}
ds=cmd.ExecuteReader(CommandBehavior.CloseConnection);
受保护的DbDataReader GetDataReader(字符串过程重命名,列出参数,CommandType CommandType=CommandType.StoredProcess)
{
数据读取器;
尝试
{
DbConnection=this.GetConnection();
{
DbCommand cmd=this.GetCommand(连接、过程重命名、命令类型);
if(parameters!=null&¶meters.Count>0)
{
cmd.Parameters.AddRange(Parameters.ToArray());
}
}
}
捕获(例外情况除外)
{
}
//LogException(“未能获取“+procedureName,ex,parameters”的DataReader);
投掷;
}
返回ds;
}
还可以找到更多

更新

您必须添加nuget包

 Install-Package System.Data.SqlClient 
这对我来说仍然很困惑。Net核心和.Net标准与常规.Net:我们如何知道哪些软件包可以与.Net核心一起使用?

依赖项意味着为了使用包或nuget而应该在计算机上安装的内容将为您安装 要了解更多依赖项在.net中的工作原理,请查看
注意
如果nuget包target
.net standard
库主要在.net core和.net standard framework上工作

如果您对另一篇与我相同的回答和参考文章中的
BaseDataAccess
类格式感到惊讶,下面是一个格式良好的示例。。。希望它能为你节省一些时间

public class BaseDataAccess
{
    protected string ConnectionString { get; set; }

    public BaseDataAccess()
    {
    }

    public BaseDataAccess(string connectionString)
    {
        this.ConnectionString = connectionString;
    }

    private SqlConnection GetConnection()
    {
        SqlConnection connection = new SqlConnection(this.ConnectionString);
        if (connection.State != ConnectionState.Open)
            connection.Open();
        return connection;
    }

    protected DbCommand GetCommand(DbConnection connection, string commandText, CommandType commandType)
    {
        SqlCommand command = new SqlCommand(commandText, connection as SqlConnection);
        command.CommandType = commandType;
        return command;
    }

    protected SqlParameter GetParameter(string parameter, object value)
    {
        SqlParameter parameterObject = new SqlParameter(parameter, value != null ? value : DBNull.Value);
        parameterObject.Direction = ParameterDirection.Input;
        return parameterObject;
    }

    protected SqlParameter GetParameterOut(string parameter, SqlDbType type, object value = null, ParameterDirection parameterDirection = ParameterDirection.InputOutput)
    {
        SqlParameter parameterObject = new SqlParameter(parameter, type); ;

        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;
    }

    protected int ExecuteNonQuery(string procedureName, List<DbParameter> parameters, CommandType commandType = CommandType.StoredProcedure)
    {
        int returnValue = -1;

        try
        {
            using (SqlConnection connection = this.GetConnection())
            {
                DbCommand cmd = this.GetCommand(connection, procedureName, commandType);

                if (parameters != null && parameters.Count > 0)
                {
                    cmd.Parameters.AddRange(parameters.ToArray());
                }

                returnValue = cmd.ExecuteNonQuery();
            }
        }
        catch (Exception ex)
        {
            //LogException("Failed to ExecuteNonQuery for " + procedureName, ex, parameters);
            throw;
        }

        return returnValue;
    }

    protected object ExecuteScalar(string procedureName, List<SqlParameter> parameters)
    {
        object returnValue = null;

        try
        {
            using (DbConnection connection = this.GetConnection())
            {
                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;
    }

    protected DbDataReader GetDataReader(string procedureName, List<DbParameter> 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());
                }

                ds = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
        }
        catch (Exception ex)
        {
            //LogException("Failed to GetDataReader for " + procedureName, ex, parameters);
            throw;
        }

        return ds;
    }
}
公共类BaseDataAccess
{
受保护的字符串连接字符串{get;set;}
公共BaseDataAccess()
{
}
公共BaseDataAccess(字符串连接字符串)
{
this.ConnectionString=ConnectionString;
}
私有SqlConnection GetConnection()
{
SqlConnection=newsqlconnection(this.ConnectionString);
if(connection.State!=ConnectionState.Open)
connection.Open();
回路连接;
}
受保护的DbCommand GetCommand(DbConnection连接、字符串commandText、CommandType CommandType)
{
SqlCommand=newsqlcommand(commandText,连接为SqlConnection);
command.CommandType=CommandType;
返回命令;
}