AOD.NET学习总结

本文详细介绍SQL数据操作的各种方法,包括使用SqlCommand与SqlDataAdapter的区别、如何高效地读取和更新数据库中的数据、离线与在线访问数据库的特点等。此外,还介绍了如何通过C#结合ADO.NET进行数据库操作的最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相关网盘免费资源下载...

 

1.一般都会根据主外键进行选择

2.  sql.dataread  -->每次读取单行,相当于游标

3.  datasetBase 重点

1)可以降低访问频率

2)database是断开式连接,不能及时更新

3)sql.dataread 与sql服务器一直连接,所以数据时一直更的

4)只有使用open才真正和数据库建立联系,dataread在于数据库进行完成交互后,还要手动关闭,但是dataAdapter使用fill /update后就不用手动关闭,系统会自动关闭的

5)table的组成部分由行,列,单元格(但是游标只是针对行进行操作的)

6)游标是针对结果集进行操作的

 

 

5.重点总结(sql command和sql dataAdapter的区别)

1)对数据库进行单条语句的操作-->使用sql  dataCommand

2)dataset 有一个table 的表的集合,相当于数据库集(在本地内中)

3)dataAdapter对本地数据的操作一般是使用如下方式(不能使用SQL语句对本地table集进行操作,SQL只能对服务器中的数据进行操作):

dataset   ds;

ds.Tables["FirstCusts"].Rows[0][0]  //对table集合中第一张表FirstCusts的0行0列单元格进行操作

                                             //但是此时的操作只是针对本地数据的,要想同时更新数据库中的数据要使用如下操作

   SqlCommandBuilder scb = new SqlCommandBuilder(this.da);  // 创建SqlCommandBuilder自动创建动态的增删改函数,然后对本地的表进行检查,

                                                                                                                       //如果发现有改动的地方,就去更新数据库中相应的地方,Adapter.update有一个跟踪机制RowState

                                                                                                                       //可以让服务器知道什么行,单元格的数据被更改了,从而降低传递资源的占有
   this.da.Update(this.ds.Tables["FirstCusts"]); //根据本地的表对数据库进行更新

4) sql dataAdapter 是离线访问,sql command 是在线访问

5)adapter中查询(select) 对应 fill函数,其他操作(增删改)对应Update

6)sql dataAdapter 虽然可以自动断开,但是也要讲 sql  connection 进行 close()  和 dispose( )

7)使用sql  command 查询时只能使用游标一行行的将数据读出来,但是sql  dataAdapter可以进行跳跃式的读取数据(因为整个table已经在本机的内存里)

8)在执行对数据的"存储过程"操作时,最好使用sql command,不推荐使用dataAdapter(因为要构造增删改比较麻烦)

9)sql执行过程时,excuScalar-->对于insert返回的是null

10)ExcuScalar-->返回单值(仅限查询的时候),其他操作返回null-->不能用来判断是否执行成功

11)只能使用存储过程的异常来判断过程是否正常执行

12)存储过程一般用于复杂的业务,一般不用于简单的查询

13)存储过程的最后一行为查询的话,可以被返回,ExecuteScalar返回存储过程最后一行的结果

14)SQL--dataAdapter中极少使用存储过程

15)更新先更新外键表,在更新主键表

16)sql command和sql dataAdapter都可以带参执行

17)ExcuteScalar一般用于查询,返回查询的结果(table)

18)ExcuteNonquery 用于除查询以外的T-SQL过程,值返回收影响的行数

19) sql.Reader--->相当于游标,逐行读取 ,sql.Adapter--->用于值查询的场合比较方便

20)XML 区分大小写

22)  使用dataset的方法可以对本地dataset中的table集进行增删改查:

dataset.table[].rows.removeAt //删除

dataset.table[].rows.clear//  清除

dataset.table[].rows.add//添加

dataset.table[].rows.insertAt// 插入

23

this.datagridview.Update(this.studentDataSet);  //更新当前datagridview数据,而不是服务器上的数据

     

 

6.C#中使用ADO进行数据库操作

1)  cmd.command.Text="select count(*) from"+this.txtTableName.Text.Trim(  )  // 从文本框中读取文字时,最好Trim一下,将前后多余的空格去掉!

2) DatagridView比 listView更加适合数据展示和绑定

3)ds.table[..] Rows.RemoveAt[0] // 只是删除中间环节的dataTable中的数据,而不是服务器中的表

4)  服务器---> dataTable(中间环节,在内存中)--->datagridView

5)menu strip --->右键菜单

6)计算列没有列名,要使用AS ,取列名才能显示

7) select  case when  country=‘usa' then 1 else  0  //可写在一行

8)一个dataset中可以创建多个表,相互独立的

9)datagridview 中的readonly -->设置为false 就可以修改表

10)如果要将dataset中的table更改之后,再更新服务器的话,datatable要与服务器的原表的结构保持一致

11)一般不会在表中修改数据,一般只是用来展示

12)一般是对daragrdview的某Row双击后,然后弹出新界面,再来对数据进行修改

13)sql  connection是假连接,fill / dataread  /dataset 才是真正的连接到数据库

14)可空的数据类型:

      int?  i2=0  

      int?  i3=null  // int可以为null

15) 当引用的嵌套类的中的类时,必须使用全名空间,例如:

classA

{

     class  a 

}

//则引用时要写   classA.classa

 

using(sqlconnection=...)  //与数据库建立的连接和cmd都要重用! 数据库的连接时非常耗时的,所以不要每次操作都创建连接!!

{

 conn.open( )

}

16) cmd.parameters.Add--->之前要调用clear( )

17) cmbobox的item的显示内容和绑定对象是不一样的

18)  .NET程序都要配置文件  //使用system.configtion  引入才能读配置文件

19)streamRead每次一行,适合于大数据的文件,file.ReadAlllines 先把文件一次性读入内存

20)每次于数据库交互的时候,都要暂时性的建立一次连接,然后断开

21)dataread相当于一个游标,每次从数据库中读取一行数据(不占内存),但是sql断开以后,dataread也可以断开,优点是不占内存(在线数据集)

21)一个数据库能承载的用户是有限的,所有要及时断开

22)Adapter.Getdata-->直接将数据从服务器取出并生成一个table

      Adapter.fill--->必须新建一个datatable,然后将取出的数据填充进去

23)dataset有自动生成的insert,delete方法,很方便:

24)当进行批量处理的时候应该统一先open,然后处理完所有操作后再一次性close,例如

Adapter.connetion.open( )

for(  )

{

批量处理.....

}

Adapter.connetion.close( ) //在一个连接中进行批量处理,操作速度快,否则每次都要执行例如insert语句时都要重复open和close---->效率很低!!

 

 

7.ADO中的事物

14)一个数据库连接上可以开启多个事物

15)commit将数据提交到数据库

 

相关网盘免费资源下载...

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值