代码是:
//----------------------------------
SQL="SELECT * FROM A";
sqlCommand=new SqlCommand(SQL,Conn);
ds=new DataSet();
da=new SqlDataAdapter();
sqlCb=new SqlCommandBuilder(da);
da.SelectCommand=sqlCommand;
da.Fill(ds,"A");
DataRow thisRow=ds.Tables["A"].NewRow();
thisRow[0]="111";
thisRow[1]="bbb";
ds.Tables["A"].Rows.Add(thisRow);
da.Update(ds,"A");
//-----------------------------------
问题:
1、这是不是增加数据记录的常规做法?
2、有没有更好的做法?
3、感觉“da.Fill(ds,"A");”这句是把表带入本机内存,不知对不对?
4、当表A数据很大时,会不会消耗很多资源?

解决方案 »

  1.   

    复杂系统或大型系统中,Adapter就是一个玩具
      

  2.   

    1、这是不是增加数据记录的常规做法?
    可以算是吧。2、有没有更好的做法?
    不知道算不算是更好,但有个更简单的方法。
    在vs2005,winform。用"数据"-"显示数据源"(Alt+Shit+D)
    “添加新数据源”,建立数据库连接,从数据库里选择表A,把表A直接拖到Form上,系统帮你生成对应的BindingSource, BindingNavigator, TableAdapter等。通过BindingNavigator可以增、删、改。你甚至不用写一行代码。
    3、感觉“da.Fill(ds,"A");”这句是把表带入本机内存,不知对不对?
    yes. memory-resident database.
    4、当表A数据很大时,会不会消耗很多资源?
    yes.
      

  3.   

    仅仅向SQL数据库表中增加一条数据,为什么不直接用INSERT语句?把增加数据的过程交给数据库自己处理更有效率吧。
      

  4.   

    将SQL="SELECT * FROM A";
    改为SQL="SELECT * FROM A WHERE 1=2";
    会不会好些(从节约资源方面)?
    另,在SQL语句中有没有表示FALSE、TRUE的常量?