今日碰到的问题,值得大家一看,好避免!呵呵,不知是该怪mysql,还是该怪vs

a3212b12 2013-05-10 05:14:48
环境: vs2008,mysql 5
问题: 使用 查询语句为 select CONCAT(14.3,'-'),CONCAT('22')

要把查询结果绑定到 表格控件,结果第一列出错,第2列 ok!
如图:上面的表格为c1控件,出错列不显示,下面列为datagridview,显示错误!

呵呵,不知是该怪mysql,还是该怪vs


...全文
172 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a3212b12 2013-05-13
  • 打赏
  • 举报
回复
引用 4 楼 xuboke 的回复:
select CONCAT('14.3','-'); 这样不是很和谐嘛。
select CONCAT('14.3','-')确实很和谐,select CONCAT(t.iid,'-')就难和谐了
a3212b12 2013-05-13
  • 打赏
  • 举报
回复
引用 5 楼 trainee 的回复:
怪MYSQL mysql有时会把concat的结果格式转化为blob类型, 而不是text类型. 我发现有的版本会, 有的版本不会 有补救的方法: cast(concat(....) as char)
呵呵,正解,所以我在vs中监控 列1数据类型是 byte
欢乐的尼美 2013-05-11
  • 打赏
  • 举报
回复
select CONCAT('14.3','-'); 这样不是很和谐嘛。
trainee 2013-05-11
  • 打赏
  • 举报
回复
怪MYSQL mysql有时会把concat的结果格式转化为blob类型, 而不是text类型. 我发现有的版本会, 有的版本不会 有补救的方法: cast(concat(....) as char)
a3212b12 2013-05-10
  • 打赏
  • 举报
回复
引用 2 楼 ACMAIN_CHM 的回复:
怪VS, 估计是VS中把第一个没有做数字处理,直接把原数字输出了。比如 ox20 的输出往往就是个空格,而不是数字 32.
也有可能是mysql 的concat 没有真正把数字转换为字符串。 我监控了下,好像是转换为byte 了
ACMAIN_CHM 2013-05-10
  • 打赏
  • 举报
回复
怪VS, 估计是VS中把第一个没有做数字处理,直接把原数字输出了。比如 ox20 的输出往往就是个空格,而不是数字 32.
a3212b12 2013-05-10
  • 打赏
  • 举报
回复
select CONCAT(14.3),CONCAT('22') 也一样

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧