被迫转到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 端口,默认 3306ConnectionProtocol,protocol: 连接协议,默认 SocketsPipeName,pipe: 连接管道,默认 MYSQLUseCompression,compress: 连接是否压缩,默认 falseAllowBatch: 是否允许一次执行多条SQL语句,默认 trueLogging: 是否启用日志,默认 falseSharedMemoryName:内存共享的名称,默认 MYSQLUseOldSyntax,old syntax, oldsyntax:是否兼容旧版的语法,默认 falseConnectionTimeout,connection timeout:连接超时等待时间,默认15sDefaultCommandTimeout,command timeout:MySqlCommand 超时时间,默认 30sUserID, uid, username, user name, user:数据库登录帐号Password,pwd: 登录密码PersistSecurityInfo:是否保持敏感信息,默认 falseEncrypt:已经用 SSL 替代了,默认 falseCertificateFile:证书文件(.pfx)格式CertificatePassword:证书的密码CertificateStoreLocation:证书的存储位置CertificateThumbprint:证书指纹AllowZeroDateTime:日期时间能否为零,默认 falseConvertZeroDateTime:为零的日期时间是否转化为 DateTime.MinValue,默认 falseUseUsageAdvisor, usage advisor:是否启用助手,会影响数据库性能,默认 falseProcedureCacheSize,procedure cache, procedurecache:同一时间能缓存几条存储过程,0为禁止,默认 25UsePerformanceMonitor,userperfmon, perfmon:是否启用性能监视,默认 falseIgnorePrepare: 是否忽略 Prepare() 调用,默认 trueUseProcedureBodies,procedure bodies:是否检查存储过程体、参数的有效性,默认 trueAutoEnlist: 是否自动使用活动的连接,默认 trueRespectBinaryFlags:是否响应列上元数据的二进制标志,默认 trueTreatTinyAsBoolean:是否将 TINYINT(1) 列视为布尔型,默认 trueAllowUserVariables:是否允许 SQL 中出现用户变量,默认 falseInteractiveSession,interactive:会话是否允许交互,默认 falseFunctionsReturnString:所有服务器函数是否按返回字符串处理,默认 falseUseAffectedRows:是否用受影响的行数替代查找到的行数来返回数据,默认 falseOldGuids: 是否将 binary(16) 列作为 Guids,默认 falseKeepalive: 保持 TCP 连接的秒数,默认0,不保持。ConnectionLifeTime:连接被销毁前在连接池中保持的最少时间(秒)。默认 0Pooling: 是否使用线程池,默认 trueMinimumPoolSize, min pool size:线程池中允许的最少线程数,默认 0MaximumPoolSize,max pool size:线程池中允许的最多线程数,默认 100ConnectionReset:连接过期后是否自动复位,默认 falseCharacterSet, charset:向服务器请求连接所使用的字符集,默认:无TreatBlobsAsUTF8:binary blobs 是否按 utf8 对待,默认 falseBlobAsUTF8IncludePattern:列的匹配模式,一旦匹配将按 utf8 处理,默认:无SslMode: 是否启用 SSL 连接模式,默认:MySqlSslMode.None文章出处: