CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

检查字符的合法性

楼主alpsice(崇拜庖丁之游刃有余)2006-03-02 18:26:09 在 VB / 基础类 提问

如在text中:项目1+项目2+项目3   >   项目4+项目5,这样一个条件,如何检测其中一个输错误或者我表里没有这个字段。高手赐教。 问题点数:100、回复次数:13Top

1 楼Modest(塞北雪貂)·(偶最欣赏楼主的分)回复于 2006-03-02 18:29:29 得分 0

这问题太笼统了也,详细一点好不?Top

2 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-02 19:03:37 得分 0

思路:  
   
  以+号和>号分解字符串(项目1+项目2+项目3   >   项目4+项目5)  
  分别得到   项目1、项目2、项目3   、项目4、项目5,然后查询表字段,通过对比来判断是否输入正确Top

3 楼liuxiaoyi666(MSMVP 小猪妹荣誉马甲之八卦兔子)回复于 2006-03-02 20:28:37 得分 0

adox   就可以检测有没有这个fieldTop

4 楼alpsice(崇拜庖丁之游刃有余)回复于 2006-03-04 11:51:07 得分 0

我说详细一点:如我要做一个SELECT   *   FROM   TABLE   WHERE   &TEXT1.TEXT&,但如果在text1.text中有非法字符或者不全,无法对应表里的字段,我怎样在这之前来排除这样的问题。能不能用代码来解释一下。Top

5 楼alpsice(崇拜庖丁之游刃有余)回复于 2006-03-09 15:08:47 得分 0

哎,我的一百分都不好给了,有谁说详细点我就给他,大家帮帮我吧,出点力吧Top

6 楼kfly001(磨练)回复于 2006-03-09 16:00:01 得分 0

写SQL之前先对输入数据进行检查撒。Top

7 楼rayxu(有心就成)回复于 2006-03-09 17:06:14 得分 0

生产单号>?并且<?     里面的变量都是直接取控件里的值。用户选择条件查询。  
   
   
  Sql1   =   "delete   from   丝印   where   "   &   comMore1.Text   &   "   "   &   comMore2.Text   &   "   +   '"   +   txtMore1.Text   +   "'and   "   &   comMore1.Text   &   "   "   &   comMore3.Text   &   "   +   '"   +   txtMore2.Text   +   "'"  
   
  把代码设置“断点”,然后看一下到底哪里出了错。你在断点时面可以看到各变量赋值的情况!Top

8 楼cuizm(射天狼 http://www.j2soft.cn/)回复于 2006-03-10 08:44:16 得分 0

你还是把各个条件分别放到不同的文本框里吧,你这样输入一个文本框里无法判断。  
  你不是自己给自己找麻烦嘛!  
   
  ╭════════════════════════════╮  
  ║                            ║  
  ║  免费的学习、交流、源码、工具网站,欢迎大家访问!  ║  
  ║  http://www.j2soft.cn/                  ║  
  ╰════════════════════════════╯Top

9 楼of123()回复于 2006-03-10 09:10:52 得分 0

那就需要做一个句法分析模块了。  
   
  首先用   Split   函数将字符串分割,然后逐个分析:  
  dim   a()   as   string  
   
  do   until   instr(text1,   space(2))   <   1  
          text1   =   replace(text1,   space(2),   space(1))  
  loop  
  a   =   split(text1,   space(1))  
   
  for   i   =   0   to   ubound(a)  
      '这里写分析代码  
   
  next  
   
  分析内容:  
      1   是否一个字段名  
      2   如果不是,是否一个字符串表达式、数字表达式或布尔值  
      3   相邻的几个词是否构成合法的逻辑表达式,即字段名和值之间是否有合法的运算符(需要注意   Between   这样的特殊格式以及   Boolean   型字段本身就可以构成表达式)  
      4   表达式之间是否有合法的逻辑运算符  
      5   注意逻辑运算符可以是逻辑表达式之间的,也可以是表达式内部的  
   
  总之,句法分析比较复杂,需要写大量代码。  
   
  我的建议,如果是一个比较简单的小程序,就不如发送   SQL   语句之后拦截错误。如果是要求高,需要表现完美的程序,那就写句法分析程序吧。当然,还可以查查   Access   等有无可以外部调用的   SQL   分析函数。Top

10 楼of123()回复于 2006-03-10 09:21:50 得分 0

对于你类似的问题,我的做法是:  
   
  1   用一个   ComboBox   下拉列表放所有的字段名  
  2   用一个   Label   外加一个弹出式   List   供用户选择运算符(当然也可以用   Combo,   仅仅是为了美观)  
  3   用一个   ComboBox   和一个   DatePicker   根据   Combo   选择的字段类型隐现,让用户输入或选择查询条件。  
   
  4   在添加条件按钮按下后,在一个锁定的   TextBox   中放入   "Where"/"And"   加上上面三个控件的内容。可以多次选择,连接成一个多条件的查询。Top

11 楼zq972(最近不想写代码,好累~~~~)回复于 2006-03-10 11:25:59 得分 0

用一个text肯定不好的,应该是用户只能选择不可修改才能保证不错误,  
  也能减少代码的编写!Top

12 楼province_(雍昊)回复于 2006-03-10 12:01:16 得分 0

这种做法隐患大大的,真是方便了SQL注入的练习者。Top

13 楼zhangzhijian(逍遥||淡水鱼)回复于 2006-03-10 15:08:42 得分 0

我怎么总觉得这方法不太可取?  
  1,太复杂  
  2,出错机会太大了.Top

相关问题

  • 日期合法性检查
  • 关于输入合法性检查?
  • 如何检查输入的合法性!
  • 如何检查时间的合法性?
  • 如何验证一个字符串的合法性?
  • 求助:一个关于在VBScript中判断字符串的合法性问题
  • 怎样合法性检查用户的输入是ip地址
  • 在用户表单输入日期检查合法性函数?
  • 请问如何检查参数的合法性?
  • 菜鸟问题:关于输入项合法性检查

关键词

  • 项目
  • 详细
  • text

得分解答快速导航

  • 帖主:alpsice

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo