• C#连接到SQL Server数据库


    理论知识

    使用ADO.NET(ActiveX Data Objects)可以减少不同数据库系统带来的琐碎事情。

    ADO.NET是一组公开数据访问服务的类。

    主要组成:

    1. .NET 数据提供程序:可以实现数据操作和对数据的快速,只进只读访问。
    2. DataSet (数据集):ADO.NET的断开式结构的核心组件。

    .NET 数据提供程序的四大核心对象:

    1. Connection对象:用于开启程序和数据库之间的连接。
    2. Command对象:用于对数据库发出一些操作指令。列如:增删查改
    3. DataAdapter对象:在数据源和DataSet之间执行数据传输工作。在Command对象下达命令后将返回的数据放入DataSet(数据集)中。
    4. DataReader对象:当只需逐一读取数据而不需要其他操作时,可以使用该对象,该对象每次只从数据源中提取一条记录。

    实际操作

    要连接数据库的话需要导入一个类:

    System.Data.SqlClient;

    如果要实现下面代码中的if判断效果还要导入类:

    System.Data; 

    需要注意的话都写在注释里了,自己去看吧:

    1. static void Main(string[] args)
    2. {
    3. Console.WriteLine("请输入你要连接的数据库名:");
    4. string sqlName = Console.ReadLine();
    5. //第一步创建SqlConnection对象,第二步输入输入连接的字符串,
    6. //也可以把字符串写在外面,把字符串赋给该类里面ConnectionString的字段
    7. //连接数据库的字符串 大小写可以
    8. SqlConnection con = new SqlConnection($"server=.;database={sqlName};Uid=sa;pwd=zx20040825");
    9. #region
    10. //State这个是调用ConnectionState类中的SqlConnection类里面的一个字段,
    11. //表示最近在连接上执行网络操作时表示SqlConnection的状态,返回结果是一个ConnectionState枚举
    12. //当连接关闭时,Closed返回的时0,
    13. #endregion
    14. if (con.State == ConnectionState.Closed)
    15. {
    16. //第三步用该类提供Open()方法连接到数据库
    17. con.Open();
    18. Console.WriteLine("连接成功。");
    19. }
    20. else
    21. {
    22. Console.WriteLine("此数据库已连接。");
    23. //Close()方法用于关闭数据库的连接
    24. con.Close();
    25. Console.WriteLine("已自动断开数据库。");
    26. }
    27. Console.ReadLine();
    28. }

    注意:不同的数据库连接字符串,其格式不同。

    SQL Server数据库的连接字符串的一般格式如下,

    语法:Data Source(server)=服务器名称或IP地址;Initial Catalog(database)=数据库名;User ID(Uid)=用户名;pwd=密码

    如果你的用Windows身份登入,那么用户名和密码不用写,加上:trusted_connection=SSPI

    扩展知识

    1.NET数据提供程序包含用于访问各种数据源的数据对象,使用这些数据处理程序可以对数据库中的数据进行查询,更新,修改等操作。目前,有4种类型的.NET数据提供程序。

    .NET数据提供程序及相应的连接类
    .NET 数据提供程序连接类命名空间
    SQL Server 数据提供程序SqlConnectionSystem.Data.SqlClient
    OLE DB 数据提供程序OleDbConnectionSystem.Data.OleDb
    ODBC 数据提供程序OdbcConnectionSystem.Data.Odbc
    Oracle 数据提供程序OracleConnectionSystem.Data.Client

  • 相关阅读:
    C++对象模型(20)-- 函数语义学:函数和变量的绑定问题
    基于三维GIS系统的智慧水库管理应用
    数组越界访问导致死循环的情况
    maven部署方案之分离业务包
    git 中如何删除 Untracked files 文件
    华为配置旁挂三层组网直接转发示例
    混合开发架构|Android工程集成React Native、Flutter、ReactJs
    如何制作一个卡刷扩容补丁。用于扩容系统等分区 刷写第三方需要扩容才可以刷写的系统或者GSI GSI系统bug修复【二】
    Android笔记(四)Activity之间传递可序列化的数据的优化处理
    day36-单元测试
  • 原文地址:https://blog.csdn.net/zouzxxi/article/details/128183970