检查字符的合法性 如在text中:项目1+项目2+项目3 > 项目4+项目5,这样一个条件,如何检测其中一个输错误或者我表里没有这个字段。高手赐教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 思路:以+号和>号分解字符串(项目1+项目2+项目3 > 项目4+项目5)分别得到 项目1、项目2、项目3 、项目4、项目5,然后查询表字段,通过对比来判断是否输入正确 adox 就可以检测有没有这个field 我说详细一点:如我要做一个SELECT * FROM TABLE WHERE &TEXT1.TEXT&,但如果在text1.text中有非法字符或者不全,无法对应表里的字段,我怎样在这之前来排除这样的问题。能不能用代码来解释一下。 写SQL之前先对输入数据进行检查撒。 生产单号>?并且<? 里面的变量都是直接取控件里的值。用户选择条件查询。Sql1 = "delete from 丝印 where " & comMore1.Text & " " & comMore2.Text & " + '" + txtMore1.Text + "'and " & comMore1.Text & " " & comMore3.Text & " + '" + txtMore2.Text + "'"把代码设置“断点”,然后看一下到底哪里出了错。你在断点时面可以看到各变量赋值的情况! 你还是把各个条件分别放到不同的文本框里吧,你这样输入一个文本框里无法判断。你不是自己给自己找麻烦嘛!╭════════════════════════════╮║ ║║ 免费的学习、交流、源码、工具网站,欢迎大家访问! ║║ http://www.j2soft.cn/ ║╰════════════════════════════╯ 那就需要做一个句法分析模块了。首先用 Split 函数将字符串分割,然后逐个分析:dim a() as stringdo until instr(text1, space(2)) < 1 text1 = replace(text1, space(2), space(1))loopa = split(text1, space(1))for i = 0 to ubound(a) '这里写分析代码next分析内容: 1 是否一个字段名 2 如果不是,是否一个字符串表达式、数字表达式或布尔值 3 相邻的几个词是否构成合法的逻辑表达式,即字段名和值之间是否有合法的运算符(需要注意 Between 这样的特殊格式以及 Boolean 型字段本身就可以构成表达式) 4 表达式之间是否有合法的逻辑运算符 5 注意逻辑运算符可以是逻辑表达式之间的,也可以是表达式内部的总之,句法分析比较复杂,需要写大量代码。我的建议,如果是一个比较简单的小程序,就不如发送 SQL 语句之后拦截错误。如果是要求高,需要表现完美的程序,那就写句法分析程序吧。当然,还可以查查 Access 等有无可以外部调用的 SQL 分析函数。 对于你类似的问题,我的做法是:1 用一个 ComboBox 下拉列表放所有的字段名2 用一个 Label 外加一个弹出式 List 供用户选择运算符(当然也可以用 Combo, 仅仅是为了美观)3 用一个 ComboBox 和一个 DatePicker 根据 Combo 选择的字段类型隐现,让用户输入或选择查询条件。4 在添加条件按钮按下后,在一个锁定的 TextBox 中放入 "Where"/"And" 加上上面三个控件的内容。可以多次选择,连接成一个多条件的查询。 用一个text肯定不好的,应该是用户只能选择不可修改才能保证不错误,也能减少代码的编写! 这种做法隐患大大的,真是方便了SQL注入的练习者。 继续昨天的问题,关于菜单的。 如何改变Toolbar的位置? 帮忙看代码的问题,窗体是在最上面,但不能获得焦点? 很简单的一个问题,在线等答案加分拉 在线等待crystal 连接数据库问题! 急!急!急! 指教 !大侠帮帮我 请教—《工资管理系统》需要些什么功能?(高分) 有上海的同行嗎,現在那邊行情怎么樣,我想到那邊混混 我提的问题到底是太“难”了,还是太简单了? 请问如何用API方式调用输入法? 如何在Access数据库中新建表??? 在VB中如何设定一个窗体的显示为800*600
分别得到 项目1、项目2、项目3 、项目4、项目5,然后查询表字段,通过对比来判断是否输入正确
Sql1 = "delete from 丝印 where " & comMore1.Text & " " & comMore2.Text & " + '" + txtMore1.Text + "'and " & comMore1.Text & " " & comMore3.Text & " + '" + txtMore2.Text + "'"把代码设置“断点”,然后看一下到底哪里出了错。你在断点时面可以看到各变量赋值的情况!
你不是自己给自己找麻烦嘛!╭════════════════════════════╮
║ ║
║ 免费的学习、交流、源码、工具网站,欢迎大家访问! ║
║ http://www.j2soft.cn/ ║
╰════════════════════════════╯
dim a() as stringdo 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 分析函数。
2 用一个 Label 外加一个弹出式 List 供用户选择运算符(当然也可以用 Combo, 仅仅是为了美观)
3 用一个 ComboBox 和一个 DatePicker 根据 Combo 选择的字段类型隐现,让用户输入或选择查询条件。4 在添加条件按钮按下后,在一个锁定的 TextBox 中放入 "Where"/"And" 加上上面三个控件的内容。可以多次选择,连接成一个多条件的查询。
也能减少代码的编写!