客户端是这么写的代码
selname ="select top 20 num,name,kind,address,price,phone,title,picture,time from shangpin where name='" + comboBox2.Text + "' order by time desc"
然后把selname发送给服务器,服务器再根据这个字符串去查询,把查询结果以datatable发回来.

解决方案 »

  1.   

    当然了,也要考虑,不过验证可以在clinet端做。
      

  2.   

    用参数方式,安全高效。string sql = "SELECT * FROM Table Where Name=@Name";
      

  3.   

    有人说LINQ就可以防止SQL注入
    不知道是不是真的
    个人认为LINQ很好、很强大
      

  4.   

    既然是C/S你不用DB Client却发送什么SQL语句不是吃饱了撑的吗...
      

  5.   

    我菜鸟,问下DB Client是什么?
      

  6.   

    是不是发送个“delete from shangpin where name like 'A%'”也能执行?那么你们的“服务器”可真是什么事情都肯干啊!什么样的人会设计这种服务器?你们不会是请假和尚做了道场了吧。
      

  7.   

    数据库客户端...DB Client负责与DB Server通信,包括在客户端解析SQL语句、返回结果并优化查询等,减少Server工作...比你传SQL语句高效很多,通信量也小很多...
      

  8.   

    就是说使用c/s数据库的客户端驱动,例如ado.net访问sql server数据库就是。c/s数据库当然也是由客户端应用程序调用驱动部分(例如ado.net)来形成sql语句,然后发送给数据库服务器,然后由数据库服务器执行,并返回查询结果通过驱动部分(例如ado.net)返回给客户端。不过,使用c/s数据库方式毕竟不需要你们自己开发服务器系统。而既然你们自己开发服务器系统,为什么不搞一个正规的业务服务器,搞什么传递sql字符串的服务器系统有点太小儿科了。
      

  9.   

    注入和软件的呈现形式无关,只要有SQL语句拼接的地方,就存在注入。