【问题标题】:OdbcConnection Stringodbc 连接字符串
【发布时间】:2018-11-13 07:20:39
【问题描述】:
要在方法中建立 odbc 连接字符串,可以通过以下方式进行:
odbcConnection = new OdbcConnection();
odbcConnection.Connection = "DRIVER={MySQL ODBC 5.2w Driver};"
+ "SERVER=localhost;PORT=3306;"
+ "DATABASE=dbdemo2;UID=demo-user";
为什么需要在大括号中提及 DRIVER?
【问题讨论】:
标签:
c#
odbc
database-connection
【解决方案1】:
来自文档
OdbcConnection.ConnectionString Property
connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
empty-string ::=
attribute ::= attribute-keyword=attribute-value | DRIVER=[{]attribute-value[}]
attribute-keyword ::= DSN | UID | PWD
| driver-defined-attribute-keyword
attribute-value ::= character-string
driver-defined-attribute-keyword ::= identifier
获取或设置用于打开数据源的字符串。
...
应用程序不必在驱动程序关键字之后在属性值周围添加大括号除非属性包含分号
(;),在这种情况下需要大括号。如果属性值
司机收到的包括大括号,司机不应该删除
它们,但它们应该是返回的连接字符串的一部分。
用大括号 ({}) 括起来且包含任何字符 []{}(),;?*=!@ 的 DSN 或连接字符串值被原封不动地传递给
司机。但是,当您在关键字中使用这些字符时,
使用文件 DSN 时,驱动程序管理器返回错误,但
将连接字符串传递给驱动程序以进行常规连接
字符串。避免在关键字值中使用嵌入式大括号。
连接字符串可以包含任意数量的驱动定义
关键词。因为 DRIVER 关键字不使用来自
系统,驱动程序必须定义足够的关键字,以便驱动程序可以
仅使用连接中的信息连接到数据源
细绳。驱动程序定义需要连接哪些关键字
数据源。
在这种情况下它可能不需要它,尽管添加大括号并没有什么坏处