首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • vs2008中,双引号问题 [已结贴,结贴人:xiaozexun]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-19 13:44:45 楼主
    全文检索需要字符串用双引号表示,web网站获得的字符串加双引号出错问题。

    1.文本框中获得字符串。如:北京 柳州
    2.分词成字符数组 如:string[] cityName; cityName[0]="北京";cityName[1]="柳州";
    3.组合全文检索sql语句,如:select * from city where contains(*,'"北京" or "柳州"');


    问题在这里,sql语句中北京跟柳州旁边必须要双引号,在Default.aspx.cs中编写代码

    string Condtion="";---sql条件语句
    for (int i = 0; i < cityName.Length; i++)
    {
        if (i != cityName.Length - 1)
              {
                  Condtion= Condtion+ "\"" + cityName[i] + "\" or ";
                }
                else
                {
                    Condtion= Condtion+ "\"" + cityName[i] + "\"";

                }
    }

    后得到的结果是select * from city where contains(*,'\"北京\" or \"柳州\"');这样就不能在数据库中执行
    只有select * from city where contains(*,'"北京" or "柳州"');才行
    无论使用@"" 还是使用\" 效果都一样,在建立控制台程序时就不会出现,但是现在需要web应用,各位高手帮忙。

    5  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-19 17:13:551楼 得分:0
    今天刚来分不多高手帮忙啊!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 09:22:282楼 得分:0
    看过的帮忙解决下问题呀
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zswang
    • 等级:
    发表于:2008-05-20 09:46:423楼 得分:0
    楼主的这段代码没有问题,你将Condtion直接输出就知道了。不会出现“\”,那只出现在调试环境中。

    你在web中是怎么传递的?另外,这段代码存在SQL注入风险。图
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 10:05:154楼 得分:0
    vs 2008中web应用就是出现问题,不然我也不会问了。我做控制台项目做测试的时候是没问题的,我知道存在SQL注入风险,我还要再进行处理,但是这个问题没解决就被困在这里了!先谢谢你了!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 10:48:455楼 得分:0
    学习.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 10:49:076楼 得分:0
    为什么不用parameter来做参数传递呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 11:05:417楼 得分:0
    用SqlParameter进行参数传递可以解决这个问题.!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 13:48:228楼 得分:0
    不好意思,数据层用的是NHibernate,sqlParmater能用吗?指教
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 14:08:139楼 得分:5
    把"\""改成"'"吧,字符串用单引号一样查啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 14:12:5210楼 得分:0
    你用全文检索的包含查询自己试试!双单引号执行是没问题,就是永远没结果
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved