问题1: 如: sqldataadapater da=new sqldataadapater("select * from 表 where id='"+参数+"'",conn)
          上面的sql语句用的是拼接方式?会不会遭到sql注入攻击? 听人说sqldataadapater可以自动去处理参数,而不用担心
            注入问题? 请各位介绍下
问题2: 如
        sqlconnection conn=new sqlconnection("连接字符");
       sqlcommand cmd=new sqlcommand("sql语句",conn);
       sqldataadapter da=new sqldataadapter();
       da.selectcommand=cmd;
       ........后面省略.....
       这里conn没有打开 cmd也没有执行运行的语句那在后面还需不需要关闭conn,cmd?问题3:如
       (1)
        sqlconnection conn=new sqlconnection("连接字符");
       sqlcommand cmd=new sqlcommand("select * from 表",conn);
       conn.open();
       sqldatareader dr=cmd.ExecuteRead();
       GridView.datasoure=dr;
       GridView.databind();       (2)
        dataset ds=new dataset();
        sqlconnection conn=new sqlconnection("连接字符");
        sqldataadapter da=new sqldataadapter("select * from 表",conn)
        da.fill(ds);
        GridView.datasoure=ds;
        GridView.databind();
   以上的(1)和(2)都可以把数据源绑定到GridView中,但这样两种不同的方法有什么区别?或者说效率方面哪个更好?他们的优缺点?最后的问题想问下一些工作中的问题(由于是新手一直处于自学状态 所以有些事情无法接触)
编写项目文档是怎么一回事?需不需要什么专门的工具?
希望能举个简单的列子介绍一下

解决方案 »

  1.   

    1.会有注入危险,可以使用 SqlParameter来避免
      

  2.   

    2.连接没有打开的话 SqlDataAdapter会自动打开连接,自动执行Command,执行完自动关闭连接
    链接已经打开的话 SqlDataAdapter会自动执行Command,执行完保持连接打开
      

  3.   

    3.读取数据到DataSet再绑定的好处 可以筛选数据,只显示DataSet里面某些符合条件的数据(DataView.RowFilter)
      
      

  4.   

    如何在sqldataadapter中使用参数SqlParameter?
    我只知道在sqlcommand有个command.parameter.addwith("参数",参数值)类似这样的方式来加入
    希望举一个简单的例子说明一下~
      

  5.   

    可以 new 一个SqlParameters数组   传值的时候 传这个数组  
    你可以看到那些传参数的方法支持SqlParameters数组的