C#通过SqlConnection操作SQL Server数据库完整流程

Cora
Cora
发布时间:2026-10-14| 4人浏览过
原创

本文演示如何使用C#编程语言通过ADO.NET技术连接SQL Server数据库,涵盖从数据库表结构创建到后端代码执行SELECT查询并输出结果的完整开发流程。

结果与目标

本示例旨在验证C#应用程序能够成功连接至本地SQL Server实例,检索 student 表中的数据,并将姓名、性别和年龄字段打印至控制台。该过程涉及SQL DDL(数据定义语言)脚本编写及C#类库的调用。

准备条件

  1. 数据库环境:已安装 SQL Server 服务,支持 Windows 身份验证模式登录。
  2. 开发环境:Visual Studio,已初始化一个 .NET Console Application 项目。
  3. 依赖库:需在项目中引用 System.Data.SqlClient 命名空间以进行 ADO.NET 编程。

真实操作顺序

第1步:创建数据库与表结构

目的:建立存储数据的基础架构,确保 C# 程序后续有数据可查。

入口:打开 SQL Server Management Studio (SSMS) 或等效客户端工具。

动作:新建查询窗口,执行以下 T-SQL 脚本。注意:标准 SQL Server 自增主键通常使用 IDENTITY(1,1),下文代码保留了原文语法逻辑但需注意不同版本的兼容性差异。

create table student
(
    id      int identity(1,1) primary key,
    name    char(10) not null,
    sex     char(10) not null,
    age     char(10) not null 
);

第2步:配置C#连接字符串与服务端连接

目的:建立应用程序与数据库之间的通信通道。

入口:Visual Studio 编辑器中的 Main 方法。

动作:声明连接字符串,使用 SqlClient.SqlConnection 实例化连接对象,并尝试打开连接。采用 Integrated Security=True 表示使用当前Windows用户凭据进行认证。

using System;
using System.Data;
using System.Data.SqlClient;

namespace DatabaseDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 定义连接字符串,指向本机(local)的student数据库
            string connString = "server=localhost;database=student;Integrated Security=True";
            SqlConnection sConn = new SqlConnection(connString);

            try
            {
                sConn.Open();
                Console.WriteLine("数据库连接成功!");
            }
            catch (Exception ex)
            {
                Console.WriteLine("链接错误: " + ex.Message);
                return; // 连接失败则终止执行
            }

第3步:构建命令与读取数据

目的:执行 SELECT 语句,遍历结果集并展示数据。

入口:在上述连接成功后的代码块内。

动作:创建 SqlCommand 对象指定 SQL 查询内容,调用 ExecuteReader() 获取 SqlDataReader 对象。通过 while(sdr.Read()) 循环逐行提取数据并格式化输出。

            // 定义查询语句
            string sqlMessage = "select * from student";
            SqlCommand sCmd = new SqlCommand(sqlMessage, sConn);

            SqlDataReader sdr = null;
            try
            {
                sdr = sCmd.ExecuteReader();
                
                // 打印表头
                Console.WriteLine($"{' ',8}姓名{' ',4}性别{' ',6}年龄");
                
                while (sdr.Read())
                {
                    // 根据列名获取数据值
                    Console.WriteLine($"{sdr["name"]}{sdr["sex"]}{sdr["age"]}");
                }

                // 注意:实际开发中建议使用 using 语句自动释放资源
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                // 确保关闭 reader 和 connection
                if (sdr != null) sdr.Close();
                sConn.Close();
            }
            
            Console.ReadLine();
        }
    }
}

完成判断

程序运行后若控制台无报错信息,且正确打印出预先录入的学生姓名、性别及年龄记录,即视为连接与查询操作成功。

排错与维护

  • 服务器未启动:检查 SQL Server Services 是否正在运行。
  • 网络超时/拒绝访问:确认 localhost 能否被解析为正确的 TCP/IP 地址,以及防火墙是否允许 SQL Server 默认端口(通常是 1433)通信。
  • 权限问题:如果连接字符串不使用集成安全验证,需将用户名和密码正确拼接入 connString。

简要总结

以上关于 C# 操作 SQL Server 数据库建表与查询的详细内容,更多关于 .NET 连接关系型数据库的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。