2015-04-02 91 views

回答

1

您的代码可能容易受到SQL注入的攻击。使用参数而不是字符串连接。

随着该强制性警告的方式进行,看看你的查询文本格式化后:

SELECT 
    * 
FROM 
    tblResult 
WHERE 
    EventID = @eventId 
    AND 
ORDER BY 
    Time DESCENDING 

的问题是你有一个AND语句,后跟ORDER BY,当你应该有一个谓语从句,而不是。

要么添加另一个子句,要么删除AND运算符关键字。

此外,越来越多protips:

  1. 避免匈牙利命名法,并考虑使用复数的表名(即使用Results,而不是tblResult
  2. 嵌入代码SQL的龙线是很难读,考虑格式化你的SQL,并使用多行字符串代替。
  3. 使用参数化查询,不是字符串连接生成SQL
  4. 如果你执行SELECT查询并将它传递给DataAdapter只是为了填充DataTableDataSet您正在浪费内存和CPU周期,而是使用DataReader代替:它更快(并且具有相当低的内存开销)。
相关问题