首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库驱动程序代码规范

数据库驱动程序代码规范
EN

Stack Overflow用户
提问于 2018-04-12 05:29:42
回答 1查看 264关注 0票数 1

大家早上好,

最近,我在PythonandC#中遇到了DB连接问题。

例如,假设我们希望连接Server。在.NET (C#)中,我们只需知道服务器名称、凭据,就可以使用SqlConnection对象连接到DB。那很清楚了。

现在,在Python中,当使用pypyodbc时,我们需要另外指定驱动程序。接下来的问题是:

为什么在Python中我们必须指定驱动程序?我们不必在C#中指定它。

另一方面,如果指定驱动程序是如此关键,那么为什么我们不必须在C#中指定它呢?

我知道,在C#中,我们有专门用于Server的类( Python是吗?)或者pypyodbc是唯一的选择?),这是否意味着它有某种方法来解决使用哪个驱动程序?甲骨文也是这样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-12 06:34:04

我对python一无所知,但我认为这应该能回答您的主要问题:

SqlConnection是专为使用server而设计的,因此不需要指定驱动程序,因为它使用自己指定的驱动程序。

来自Microsoft上的SqlConnection.ConnectionString性质页面:

ConnectionString类似于OLE DB连接字符串,但并不相同。与OLE DB或ADO不同,返回的连接字符串与用户集ConnectionString相同,如果持久化安全信息值设置为false (默认),则减去安全性信息。用于Server的.NET框架数据提供程序不会在连接字符串中持久化或返回密码,除非将持久化安全信息设置为true。

(强调我的,“只是为了提供上下文”中的其他内容。)

然后,在接下来的一页中:

Server .NET 数据提供程序使用自己的协议与Server进行通信。因此,它不支持在连接到Server时使用ODBC数据源名称(DSN),因为它没有添加ODBC层。

(再一次强调我的。)

在使用其他连接类(如OdbcConnectionOleDbConnection )时,需要在连接字符串中指定驱动程序。

对于Odbc连接串,使用关键字Driver

对于OleDb连接串,使用关键字Provider

关于甲骨文,.Net框架有一个名为System.Data.OracleClient的名称空间,但不推荐它(来自甲骨文和ADO.NET):

不推荐System.Data.OracleClient中的类型。这些类型在当前版本的of.NET框架中仍然支持,但在以后的版本中将被删除。Microsoft建议您使用第三方Oracle提供程序。

我猜甲骨文自己的ADO.Net实现也适用于它自己的驱动程序。如果你真的想知道,你可以在他们的文档中查找。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49788675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档