sql语句里的条件是中文(我所有的分了)

ice9ying 2010-09-08 12:07:24
发了一次过,沉下去了%>_<%

我有一个C#写的程序,连接ORACALE,字符集是8859-1,因为有中文所以我进行了转换:
public string ISO8859(string write)
{
//声明字符集
System.Text.Encoding iso8859, gb2312;
//iso8859
iso8859 = System.Text.Encoding.GetEncoding("iso8859-1");
//国标2312
gb2312 = System.Text.Encoding.GetEncoding("gb2312");
byte[] gb;
gb = gb2312.GetBytes(write);
//返回转换后的字符
return iso8859.GetString(gb);

}

这都没有问题,也确实是转换了,至少在其他电脑上都能正常运行,但是我现在要安装在一台笔记本上,发现虽然转码也成功了,但是就是没有办法进行存取,只要语句里面有中文,就没有办法办法读取,这该怎么办,要转十六进制吗,怎么写啊

语句是:select sNo from hg.PTINFO where accept='否' and BAccept='是' and apply='是'

其实中文就是简单的是和否,要怎么做才好??
...全文
607 53 打赏 收藏 转发到动态 举报
写回复
用AI写文章
53 条回复
切换为时间正序
请发表友善的回复…
发表回复
ice9ying 2010-09-17
  • 打赏
  • 举报
回复
首先..数据库里的值绝对是“是”和“否”
第二,数据库里的数据不能做任何修改
第三,这个程序在其他电脑上能够正常执行,没有任何问题
第四,各位高手的各种方法都试过,结果是一样的

最后上周我找到解决方法了,原本耗了我近一周的时间,结果最后我没用半小时就解决了
我的结论是....我果然还是个菜鸟,没有经验不说脑子也不懂拐弯,哎╮(╯▽╰)╭...
我去面壁思过去了。
还是要谢谢各位大侠了~~
ysz89757 2010-09-09
  • 打赏
  • 举报
回复
不会,学习下
oneatree 2010-09-09
  • 打赏
  • 举报
回复
你看一下数据库里accept的值是不是"是"或"否",其他几个同样,或许你数据库里的值就不是,你用"是"或"否"当然是错的啦。
ice9ying 2010-09-09
  • 打赏
  • 举报
回复
快一个星期了,我快神经了,会不会有什么其他的可能,什么可能都好,至少得要知道问题出在哪里,大家帮忙想想,什么可能出的问题都提提看,看我是不是在不注意的地方漏掉什么了或者除了什么问题
ice9ying 2010-09-09
  • 打赏
  • 举报
回复
有没有可能是电脑的问题?
Diza1986 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 47 楼 ice9ying 的回复:]
引用 46 楼 diza1986 的回复:
引用 43 楼 kissoday 的回复:
引用 42 楼 diza1986 的回复:
哥们,试一下这个
select sNo from hg.PTINFO where ascii(accept)=38107 and ascii(BAccept)=37029 and ascii(apply)=37029

++


???
在你环境下……
[/Quote]

还没解决的话,把表结构和数据贴出来看看
aahujunaa 2010-09-08
  • 打赏
  • 举报
回复
你看一下数据库里accept的值是不是"是"或"否",其他几个同样,或许你数据库里的值就不是,你用"是"或"否"当然是错的啦。
s8975565 2010-09-08
  • 打赏
  • 举报
回复
数据库中 带中文的尽量使用 nvarchar 而非 varchar
ice9ying 2010-09-08
  • 打赏
  • 举报
回复
数据库中的表肯定是不能改的(虽然我也非常非常想该)
select sNo from hg.PTINFO where accept=N'否' and BAccept=N'是' and apply=N'是'
这个不行,我试过了,哎~~~我也觉着莫名其妙的,在其他机器上就可以,就是我必须要配置的这台笔记本就不行,就出现这个问题
Teng_s2000 2010-09-08
  • 打赏
  • 举报
回复
是否就0和1表示不行?
Michael193 2010-09-08
  • 打赏
  • 举报
回复

select sNo from hg.PTINFO where accept=N'否' and BAccept=N'是' and apply=N'是'

  • 打赏
  • 举报
回复
木有问题
itneste 2010-09-08
  • 打赏
  • 举报
回复
lz没有任何问题 我用varchar(5)测试了 没问题 select * from tb_01 where month12='是'
huangmin3956 2010-09-08
  • 打赏
  • 举报
回复
路过
dodducs 2010-09-08
  • 打赏
  • 举报
回复
试下看看


select sNo from hg.PTINFO where accept=N'否' and BAccept=N'是' and apply=N'是'
ice9ying 2010-09-08
  • 打赏
  • 举报
回复
不要沉不要沉啊~~~~各位大神,提点建议也好
ice9ying 2010-09-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 huangmin3956 的回复:]
不知道 呵呵 帮你顶下 省得又给沉了
[/Quote]

嗯嗯,网上查了很多,现在就指着这儿的人才了~~~~~~~
huangmin3956 2010-09-08
  • 打赏
  • 举报
回复
不知道 呵呵 帮你顶下 省得又给沉了
ice9ying 2010-09-08
  • 打赏
  • 举报
回复
[Quote=引用 46 楼 diza1986 的回复:]
引用 43 楼 kissoday 的回复:
引用 42 楼 diza1986 的回复:
哥们,试一下这个
select sNo from hg.PTINFO where ascii(accept)=38107 and ascii(BAccept)=37029 and ascii(apply)=37029

++


???
在你环境下,查一下‘是’和‘否’的asc码
应该也是3……
[/Quote]

我试过,但是一样返回为空,什么都没有。。。。但确实是有符合条件的数据,为了以防万一我查了好几次
Diza1986 2010-09-08
  • 打赏
  • 举报
回复
[Quote=引用 43 楼 kissoday 的回复:]
引用 42 楼 diza1986 的回复:
哥们,试一下这个
select sNo from hg.PTINFO where ascii(accept)=38107 and ascii(BAccept)=37029 and ascii(apply)=37029

++
[/Quote]

???
在你环境下,查一下‘是’和‘否’的asc码
应该也是37029 和 38107 吧
怎么回不行呢
加载更多回复(31)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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