我对C#的了解并不深入,在此恳请各位路过的高手们赐教.据我的了解可以用: DataAdpter, Command,DataSet,还有一种Paramters.Add的方法. 其实我真没搞清楚究竟有哪方法?

解决方案 »

  1.   

    其实你已经说啦。
    1.通过DataAdpter,DataSet来批处理更新
    2.通过Command来用Sql语句更新,update .....
    3.通过Command调用存储过程更新上面,Command就有可能要Paramters.Add...了
      

  2.   

    主要还是通过SQL语句操作SQL语句的主要类还是 Command类Command.ExecuteNonQuery() 执行一个没有返回值得SQL语句 
    如设置Command.CommandText="Update xxx SET dd=dd",或者“Delete xx From xx”之类的语句Command.ExecuteReader() 执行有返回的SQL 
    像一个游标一样 一行一行读
    DataAdpter的主要方法是Fill
    一般是 “Select * FROM xx”
    返回一个数据集 
    DataAapter也有Update方法 但是较少使用
    DataAdapter算是批处理操作吧 1.x下应该还是一行一行处理 只是用户看不见而以
      

  3.   

    1、自己构造sql语句,如  insert into A(**,**) values(**,**),再用SqlCommand.ExecuteNonQuery来对数据库进行操作。2、通过SqlCommandBuilder来构建sql语句,DataAdapter.Update方法其实也是以此为基础。
    这种方法,要求待操作的表必须有主键,不然不能对其Update/Delete/操作。3、自己构建带Paramter的sql语句,包括两种:一种是SqlCommand有CommandText来构成,另一种就是用存储过程。
      

  4.   

    ref:
    http://blog.csdn.net/knight94/archive/2006/04/15/664530.aspx
      

  5.   

    CommandBuilder 与 sqlCommand 的区别是什么呢?
      

  6.   

    再次谢谢你们,对我的帮助很大。
    特别是Knight94(愚翁) 那篇,写得很详细,还有例子。
      

  7.   

    A.SQL指令                         i.              检查SQL的输入,并使用参数,直接使用字符连接容易遭受注入式攻击。                       ii.              仅返回需要的行和例                      iii.              对大的数据集使用分页功能                     iv.              批次执行SQL,避免多次往返。                       v.              如果没有数据返回则使用ExecuteNonQuery方法                     vi.              当返回一个标量时,使用ExecuteScalar方法                    vii.              不要在运行时间使用CommandBuilder,尽管很省事,但是开销很大。B.存储过程                         i.              尽量使用存储过程                       ii.              对于OleDbCommand,指令类型为CommandType.Text                      iii.              使用SqlCommand,指令类型为CommandType.StoredProcedure                     iv.              尽可能使用输出参数                       v.              考虑在SQL Server中SET NOCOUNT ON,即关闭SQL Server的记数功能。