被迫转到MySQL数据库,发现读取数据库时,tinyint类型的值都被转化为boolean了,这样大于1的值都丢失,变成true了。查阅资料MySQL中无Boolean类型,都是存储为tinyint了,这也无妨,但是读回时不应该都变成boolean啊。网络检索没有解决方案,准备向官方报告bug,细想官方不应该有这样低级错误,先下载Connector/NET源码研究一下,发现其中有TreatTinyAsBoolean这个属性,检索百度无结果,google有几条英文的,看来大家都没有注意到这点,或者说很少用.Net玩 MySQL的。
这样将数据库连接字符串变为这样形式就一切正常了:
Database=dbname;Data Source=192.168.1.1;Port=3306;User Id=root;Password=****;Charset=utf8;TreatTinyAsBoolean=false;
顺便把源码中涉及的所有属性都列出来:
Server,host, data source, datasource, address, addr, network address: 数据库位置(以上任何关键字均可)
Database,initial catalog:数据库名
Port: socket 端口,默认 3306
ConnectionProtocol,protocol: 连接协议,默认 Sockets
PipeName,pipe:
MYSQL连接字符串参数解析(解释)
最新推荐文章于 2024-08-09 17:04:26 发布
在.NET中使用MySQL数据库时,遇到tinyint类型值被误转换为boolean的问题。通过研究Connector/NET源码,发现设置`TreatTinyAsBoolean=false`可以解决此问题。此外,文章列举了MySQL连接字符串的各种属性及其作用,包括Server、Database、Port等,帮助理解MySQL连接配置。
摘要由CSDN通过智能技术生成