connectionstring 和 dsn 有什么区别?

What is the difference between connectionstring and dsn?

我很难理解 dsn 和连接字符串之间的区别。我的问题在于 DS 可以给你 database name, database driver, name password 。 DSN 不能使用这些详细信息连接到数据库吗?我需要一个解释,因为这已经困扰我很长时间了 DSN 具有在数据库和客户端之间建立连接的必要详细信息,不是吗?如果有,为什么会有连接字符串?

请回答,感谢您抽空回答!

DSN 代表数据源名称,它作为用户或系统值保存在注册表中。如果它在那里,您可以仅通过其名称来引用连接。这样做看起来很诱人,许多旧示例实际上使用并鼓励使用 DSN。

然而,连接字符串是将连接信息写成字符串,不需要保存在注册表中。它可以即时构建,也可以构建并保存(可能加密)到开发人员选择的位置(甚至可能是另一个本地数据库)——(从某种意义上说,当时开发人员发明了 DSN)。它具有更大的灵活性,许多开发人员更喜欢它而不是 DSN。