2020-12-09

aod.net两大部分

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

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

  2. 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”]); //根据本地的表对数据库进行更新

  1. 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过程,值返回收影响的行数

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

20)XML 区分大小写

  1. 使用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中的数据,而不是服务器中的表

  1. 服务器—> dataTable(中间环节,在内存中)—>datagridView

5)menu strip —>右键菜单

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

  1. 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
  1. 当引用的嵌套类的中的类时,必须使用全名空间,例如:

classA

{
class a

}

//则引用时要写 classA.classa

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

{
conn.open( )

}

  1. cmd.parameters.Add—>之前要调用clear( )

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

  3. .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将数据提交到数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值