r语言视频 百度网盘:8.4.3 查找特定行

来源:百度文库 编辑:中财网 时间:2024/04/30 08:50:57

8.4.3 查找特定行

DataTable提供了一个有用的方法Select(),它可以使用SQL表达式查找某行。Select()方法使用的表达式和SELECT语句的WHERE子句的作用是一样的,其依据是DataTable中已经存在的内存数据(因此没有执行任何数据库操作)。

例如,下面的代码读取所有被标记为"不再继续"的产品:

 

在本示例中,Select()语句使用了一个非常简单的过滤字符串。不过,可以自由使用更为复杂的操作符以及综合使用不同的条件。请参见MSDN类库参考中关于DataColumn.Expression属性的描述来获得更多相关信息,或者参考表8-3和8.5.2节中关于过滤字符串的讨论。

注解

Select()方法有一点不足--它不支持参数化条件。所以,它对SQL注入攻击是开放的。显而易见,这种条件下恶意用户进行的SQL注入攻击效果很有限,因为他没有办法访问真实的数据源,也不能执行额外的命令。不过,精心编写的代码还是可能欺骗你的应用程序从表中返回额外的信息。为了避免这样的情况,可以不使用Select()方法,而是用用户提供的值来创建过滤表达式,然后在DataTable上循环手工找到需要的行。