MySqlClient访问tinyint字段返回布尔值

原文 MySqlClient访问tinyint字段返回布尔值

症状:

使用MySqlClient访问tinyint       unsign 字段返回布尔值 true 和        false,但是实际上该字段存储值为1-255
分析:

由于在Mysql中没有布尔类型值,MySqlClient在访问tinyint类型字段时默认作为布尔值使用。

解决:

1.在连接串中增加        Treat Tiny As Boolean=false        配置.

2.对应字段在SQL语句中*1,这样,读取出的字段值默认会被转换成int类型.

相关资料:

  根据官方文档        10.1.1. Overview of Numeric Types ,在 MySql 中还没有严格的
bool 类型,但使用 TINYINT(1)        隐式用作 bool
类型,零作为false,而非零值(包括负数)作为true。但,这是不对称的。在执行逻辑比较时,true 等于 1,false        等于
0,但 true 不等于 2。这个文档显示的 MySql 5.0,其他后续版本是否有严格的 bool 类型未知。

在 MySql       Connector/Net 中,遵循了上面这个约定,假如某个字段类型是 tinyint(1),则会被自动映射成
Boolean        类型。如果要禁用这个映射,可以在连接字符串中,配置 Treat Tiny As
Boolean=false。这个选项的默认值是 true。参考        21.2.6. Connector/NET Connection
String Options Reference 。没有查到这个选项从        Connector/Net 哪个版本开始支持,应该是
Connector/Net 5.x 之后都支持。

时间: 2024-12-05 10:03:42

MySqlClient访问tinyint字段返回布尔值的相关文章

JQuery 返回布尔值Is()条件判断方法代码_jquery

下面是JQuery的Is()方法判断: 复制代码 代码如下: $(function(){ $("ul").click(function(event){ var tar = event.target; if(tar.tagName == "STRONG"){ alert(tar.tagName); } }); }) 上面是原生JS判断: 复制代码 代码如下: $(function(){ $("ul").click(function(event){

JavaScript中的boolean布尔值使用学习及相关技巧讲解_javascript技巧

JavaScript中的两个基础的布尔类型的值:1.true 2.false布尔值 true 代表"真",false 代表"假".一般关系运算符会返回布尔值的结果.另外,数值的 0.-0.特殊值的 null.NaN.undefined 以及空字符("")都会被解释为 false ,其他值则会被解释为 true . function isMonth(mon) { if ((mon >= 1) && (mon <= 12)

dialog-android怎么确定对话框返回的值是true还是false?

问题描述 android怎么确定对话框返回的值是true还是false? 似乎没有简单的方法获得一个警告框来返回一个简单的值. 下边的代码不起作用(答案变量不能设置在监听器里,事实上它甚至都没有编译) public static boolean Confirm(Context context) { boolean answer; AlertDialog dialog = new AlertDialog.Builder(context).create(); dialog.setTitle("Con

hibernate-下面代码里为什么要有hidden,hidden的作用,hidden返回的值是什么?

问题描述 下面代码里为什么要有hidden,hidden的作用,hidden返回的值是什么? function login(){ var hidden=document.getElementById("hidden").value; if(document.getElementById("username"+hidden).value ==""){ alert("用户名不能为空"); return false; }else i

MySQL中各种字段的取值范围

mysql MySQL中各种字段的取值范围过节回来,网站更新的第一篇文章.看来我有必要在最近找到一位志同道合的同学一起来维护站点才行了----------------------------------------------------------------TINYINT -128 - 127 TINYINT UNSIGNED 0 - 255 SMALLINT -32768 - 32767 SMALLINT UNSIGNED 0 - 65535 MEDIUMINT -8388608 - 83

Swift语言指南(七) Swift语言基础:布尔值和类型别名

布尔值 Swift有一个基本布尔类型,叫做布尔(bool),布尔值又称逻辑值(logical),因为它只能为真(true)或假(false).Swift提供了两个布尔常量值:true,false: 1 let orangesAreOrange(橙子是橙子) = true 2 let turnipsAreDelicious(芜菁很美味) = false orangesAreOrange和turnipsAreDelicious被推断为布尔类型,因为它们的值被布尔字面量给初始化了.与前文提到的Int或

操作-asp.net第三方支付,提交成功也返回了支付成功,但是页面取不到返回的值,

问题描述 asp.net第三方支付,提交成功也返回了支付成功,但是页面取不到返回的值, 这样我没办法进行下一步的判断操作,request.querystring,取不到值啊 ,郁闷 解决方案 不知你调用第三方支付的方式,应该是访问第三方的网页,返回应该是html文本内容,调用第三方支付是在客户端还是在服务端?建议在服务端,应该解析返回的字符串,request.querystring是自己客户端发的请求,当然没值了. 解决方案二: 第三方支付,成功后会跳转到你站点某指定路径,并在URL带一些参数返

ajax自动补全-ajax如何获取Action里面list返回的值?

问题描述 ajax如何获取Action里面list返回的值? 解决方案 strust的配置文件里设置返回json格式 , extends="json-default",然后action中声明List变量,并设置setter和getter,那么在ajax的data中直接访问这个对象就行了,action中的所有变量都被转为json了,比如List对象为items,那么ajax中就访问data.items[index].xxx 解决方案二: 把List的值拼成字符串,通过ResponseTe

java-Java修改数据库表时某字段出现重复值不能修改该记录怎么继续修改下一条记录

问题描述 Java修改数据库表时某字段出现重复值不能修改该记录怎么继续修改下一条记录 Java修改数据库表的company_name字段,此字段唯一,company_name这个字段值:前面有问号的去掉以后如果和已有的company_name重复了,就不更新或者删除,前面有问号的去掉以后如果和已有的company_name没重复就去掉问号.如:?北京金瓯鼎建筑装饰工程有限公司莱州分公司和北京金瓯鼎建筑装饰工程有限公司莱州分公司两个公司,把前面有问号的去掉问号,但是有重复的,遇到有重复的不用修改此