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

2024-05-16

我们如何从.Net Core连接到SQL Serverwithout使用实体框架?


你可以简单地使用传统的方式SqlConnection

这是一个例子

 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<DbParameter> 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<SqlParameter> 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<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());
                }
 
            }
        }
        catch (Exception ex)
        {
 }
            //LogException("Failed to GetDataReader for " + procedureName, ex, parameters);
            throw;
        }
 
        return ds;
    }

可以找到更多here https://social.technet.microsoft.com/wiki/contents/articles/35974.exploring-net-core-net-core-1-0-connecting-sql-server-database.aspx

Update

你必须添加nuget包

 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?

依赖关系意味着您应该在计算机上安装什么才能使用该包,或者 nuget 将为您安装它 要了解更多依赖关系如何在 .net 中工作,请查看here https://learn.microsoft.com/en-us/nuget/consume-packages/dependency-resolution
Note如果 nuget 包目标.net standard库主要在 .net core 和 .net standard 框架上工作

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • SQL Server 连接池不检测关闭的连接?

    多年来 我在所有连接到 SQL 服务器的 Web 应用程序上都遇到了非常奇怪的问题 问题是 如果数据库服务器发生问题 服务器重新启动或其他问题 de web 应用程序将从那时起停止工作 即使数据库服务器处于活动状态并且之后运行良好 发生的情
  • ASPNETCoreModule 未与 .NET Core SDK 一起安装

    我安装了VS 2017随着 NET Core SDK在Windows 10上 但它没有安装ASPNETCoreModule如下图2所示 我想 NET Core SDK应该隐式安装它 并且不必单独安装它 NOTE 我正在尝试将我的 asp n
  • CallContext.LogicalGet/SetData 的 .NET Core 等效项

    我正在尝试将使用 CallContext LogicalGet SetData 的现有 net 应用程序迁移到 net core 当 Web 请求到达应用程序时 我会在 CallContext 中保存一个 CorrelationId 并且每
  • 如何将 nvarchar 解码为文本(SQL Server 2008 R2)?

    我有一个 SQL Server 2008 R2 表nvarchar 4000 field 存储该表的数据如下所示 696D616765206D61726B65643A5472 or 303131 011 我看到每个字符都编码为十六进制 我如
  • 如何在SQL Server中创建SYS模式的表?

    可以在 SQL Server 2008 sys 架构中创建表吗 我知道可以将表标记为系统 但不能更改架构 有什么窍门吗 您无法将自己的对象添加到 sys 架构中 无法在 sys 架构中创建用户定义的对象 盖尔 埃里克森 MS SQL Ser
  • 使用具有外键的表将数据从 asp.net 页面插入到我的数据库中

    我是一名初学asp net程序员 我的项目是网上购物课程 我有一些问题 我有 4 个表 它们之间有一些外键 CREATE TABLE dbo orderdetails orderid INT NOT NULL classid INT NOT
  • 准备好使用 uint 路由约束了吗?

    我有一个 NET Core Web API 项目 我的 Id 是从 1 开始的整数 在大多数示例中 我看到类似这样的内容 HttpGet id int public async Task
  • WinForms 应用程序设计 - 将文档从 SQL Server 移动到文件存储

    我有一个连接到 SQL Server 的标准 WinForms 应用程序 该应用程序允许用户上传当前存储在数据库中的文档 在使用图像列的表中 我需要更改这种方法 以便将文档存储为文件 并将文件的链接存储在数据库表中 使用当前的方法 当用户上
  • 一个存储过程创建的临时表可以在另一个存储过程中使用吗?

    我有一个存储过程 它使用找到的索引创建一个临时表CONTAINSTABLE就像 我放了一段存储过程代码 CREATE TABLE tmpTable ID INT RANK INT SELECT query SELECT DISTINCT I
  • SQL SERVER 中的排序依据和大小写

    我需要在存储过程中按功能排序 一个值被发布到网络服务 并且基于该值我必须以某种方式对结果进行排序 即 当 ColName 按 ColName 发布订单时 当 ColName2 由 ColName2 发布订单时 我正在研究使用 Case 但出
  • 使用 Python 中的 SQL Server 存储过程 (pyodbc)

    我有一个存储过程 代码 DECLARE RC int DECLARE id varchar 13 DECLARE pw varchar 13 DECLARE depart varchar 32 DECLARE class varchar 1
  • 使用 Switch 的报告服务表达式

    我无法让这个表达式与报告服务一起使用 我必须使用 IF 和 ELSE IF 语句 感谢您的任何建议 Switch IsNothing Fields field date Value Fields set flag Value 1 Decli
  • 将大量实体插入 SQL Server 2012 [重复]

    这个问题在这里已经有答案了 我正在进行一个使用 Entity Framework 5 和 SQL Server 2012 的项目 我们需要一次插入大量行 100k 个实体的顺序 基本上 我们有一个物理程序 它输出大量二进制数据 然后我们需要
  • PDO SQLSRV 和 PDO MySQL 在获取 int 或 float 时返回字符串

    当您获取时 PDO MS SQL Server 和 PDO MySQL 都会返回一个字符串数组 即使列的 SQL 类型本应是数字类型 例如 int 或 float 我设法解决了这个问题 但我想了解为什么它们一开始就这样设计 是不是因为PDO
  • .NET core BackgroundService 不会作为守护进程正常关闭

    我正在开发 NET Core 3 1 后台服务 将其作为守护进程安装在 Debian AWS EC2 实例上 正常关闭守护进程以停止正在运行的任务并完成许多要处理的任务 发送一些事件等 非常重要 基本实现如下所示 using Microso
  • 获取家庭成员

    假设以下家庭 其构建架构是 create table PersonConn child int parent int insert into PersonConn values 1 2 insert into PersonConn valu
  • SQL服务器事务

    我需要了解sql server事务 我浏览了谷歌上的一些文章 但我什么也没理解 谁能帮我 您可以通过写入显式启动事务BEGIN TRANSACTION 您可以通过运行来结束事务COMMIT TRANSACTION 之前COMMIT运行时 受
  • Kerberos 双跳

    我们遇到了臭名昭著的 Kerberos 双跳问题 这是一个全新的域 是从以前使用模拟和委派的另一个提供商迁移而来的 我们已将操作系统升级到最新的 SQL 服务器 2017 WPF 应用程序 使用域凭据 gt Web 服务 IIS 10 上的
  • SQL 删除表并重新创建并保留数据

    在我们最初的设计中 我们搞砸了表中的外键约束 现在表已充满数据 我们无法在不删除表中所有记录的情况下更改它 我能想到的唯一解决方案是创建一个备份表并将所有记录放在那里 然后删除所有记录 更改表并开始将它们添加回来 还有其他 更好 的想法吗
  • 如何在存储过程中实现 sql 搜索功能 (Sql Server 2008)

    我需要编写一个存储过程 该过程将使用 sql server 2008 根据可选参数搜索表 将会有两种模式 基本搜索模式 我们只传递一些文本 高级搜索模式 使用可选参数而不使用 SearchText 为了进行测试 我使用 AdventureW

随机推荐