导读:本期聚焦于小伙伴创作的《如何解析ADO.NET对SQL Server数据库执行增删改查操作》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何解析ADO.NET对SQL Server数据库执行增删改查操作》有用,将其分享出去将是对创作者最好的鼓励。

ADO.NET是.NET Framework中用于和数据源交互的一组类库,它提供了对SQL Server等数据库的统一访问方式,支持开发者完成各类数据操作需求。核心组件包含SqlConnection、SqlCommand、SqlDataReader等,通过这些组件可以高效实现数据库的交互逻辑。

如何解析ADO.NET对SQL Server数据库执行增删改查操作

环境准备与基础配置

首先需要在项目中引入System.Data.SqlClient命名空间,如果是.NET Core及以上版本,需要安装Microsoft.Data.SqlClient NuGet包。操作前需要准备SQL Server数据库的连接字符串,基础格式如下:

// 连接字符串示例,需替换为实际的数据库信息
string connectionString = "Server=127.0.0.1;Database=TestDB;User Id=sa;Password=123456;";

建立数据库连接

所有数据库操作的第一步都是建立有效的连接,使用SqlConnection类完成连接创建和打开,操作完成后需要及时释放资源,推荐使用using语句自动管理资源生命周期。

using System.Data.SqlClient;

// 创建连接对象
using (SqlConnection conn = new SqlConnection(connectionString))
{
    try
    {
        // 打开连接
        conn.Open();
        Console.WriteLine("数据库连接成功");
    }
    catch (Exception ex)
    {
        Console.WriteLine($"数据库连接失败:{ex.Message}");
    }
}

新增(Insert)操作

新增操作用于向数据表中插入新的数据记录,通过SqlCommand对象执行INSERT语句实现,执行后可以通过ExecuteNonQuery方法获取受影响的行数。

using (SqlConnection conn = new SqlConnection(connectionString))
{
    conn.Open();
    // 新增SQL语句,假设存在User表,包含Id、Name、Age字段
    string insertSql = "INSERT INTO User (Name, Age) VALUES (@Name, @Age)";
    using (SqlCommand cmd = new SqlCommand(insertSql, conn))
    {
        // 添加参数,避免SQL注入
        cmd.Parameters.AddWithValue("@Name", "张三");
        cmd.Parameters.AddWithValue("@Age", 25);
        // 执行命令,返回受影响的行数
        int rows = cmd.ExecuteNonQuery();
        Console.WriteLine($"新增成功,受影响行数:{rows}");
    }
}

查询(Select)操作

查询操作用于从数据表中获取符合条件的数据,分为单行查询和多行查询两种场景,单行查询使用ExecuteScalar方法,多行查询使用SqlDataReader遍历结果。

单行查询示例

using (SqlConnection conn = new SqlConnection(connectionString))
{
    conn.Open();
    // 查询用户总数
    string selectSingleSql = "SELECT COUNT(*) FROM User";
    using (SqlCommand cmd = new SqlCommand(selectSingleSql, conn))
    {
        // 执行查询,返回单个值
        object result = cmd.ExecuteScalar();
        Console.WriteLine($"用户总数:{result}");
    }
}

多行查询示例

using (SqlConnection conn = new SqlConnection(connectionString))
{
    conn.Open();
    // 查询所有用户
    string selectMultiSql = "SELECT Id, Name, Age FROM User";
    using (SqlCommand cmd = new SqlCommand(selectMultiSql, conn))
    {
        // 获取读取器
        using (SqlDataReader reader = cmd.ExecuteReader())
        {
            // 遍历结果
            while (reader.Read())
            {
                int id = reader.GetInt32(0);
                string name = reader.GetString(1);
                int age = reader.GetInt32(2);
                Console.WriteLine($"Id:{id}, 姓名:{name}, 年龄:{age}");
            }
        }
    }
}

修改(Update)操作

修改操作用于更新数据表中已有的记录,通过UPDATE语句配合ExecuteNonQuery方法实现,同样需要使用参数化查询避免SQL注入问题。

using (SqlConnection conn = new SqlConnection(connectionString))
{
    conn.Open();
    // 修改指定Id的用户年龄
    string updateSql = "UPDATE User SET Age = @Age WHERE Id = @Id";
    using (SqlCommand cmd = new SqlCommand(updateSql, conn))
    {
        cmd.Parameters.AddWithValue("@Age", 26);
        cmd.Parameters.AddWithValue("@Id", 1);
        int rows = cmd.ExecuteNonQuery();
        Console.WriteLine($"修改成功,受影响行数:{rows}");
    }
}

删除(Delete)操作

删除操作用于移除数据表中符合条件的记录,通过DELETE语句执行,执行后返回受影响的行数,操作前需要确认条件是否正确,避免误删数据。

using (SqlConnection conn = new SqlConnection(connectionString))
{
    conn.Open();
    // 删除指定Id的用户
    string deleteSql = "DELETE FROM User WHERE Id = @Id";
    using (SqlCommand cmd = new SqlCommand(deleteSql, conn))
    {
        cmd.Parameters.AddWithValue("@Id", 1);
        int rows = cmd.ExecuteNonQuery();
        Console.WriteLine($"删除成功,受影响行数:{rows}");
    }
}

注意事项

  • 所有数据库操作都需要做好异常处理,避免程序崩溃
  • 必须使用参数化查询,不要直接拼接SQL字符串,防止SQL注入攻击
  • 数据库连接、命令、读取器等资源都需要及时释放,优先使用using语句管理
  • 执行查询操作前需要确认连接已经打开,否则会抛出异常

ADO.NETSQL_Server增删改查数据库连接修改时间:2026-06-23 09:33:31

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。