当前位置: 代码迷 >> 综合 >> 数据库开发及ADO.NET(43)——增加新的SQL语句、TypedDataSet、强类型DataSet其他(面试:如何优化访问数据库的效率)
  详细解决方案

数据库开发及ADO.NET(43)——增加新的SQL语句、TypedDataSet、强类型DataSet其他(面试:如何优化访问数据库的效率)

热度:32   发布时间:2023-10-01 20:02:19.0

一、增加新的SQL语句

1、设计器的Adapter中点右键,选择“添加查询”→“使用SQL语句”,就可以添加多种类型的SQL语句。如果是“SELECT(返回行)”则SQL语句的列必须是对应DataSet类的父集合,生成两个方法:FillBy*和GetBy*,方法名根据查询语句的意义定,比如FillByAge,FillBy是将结果填充到现有DataSet,GetBy是将结果以DataSet方式返回,建议两个都生成,方便以后用。看看默认生成的GetData就明白了。

2、GetDataById、IncAge

3、“SELECT(返回单个值)”就是ExecuteScalar

4、对于增加的SQL语句在代码中是以方法的形式使用的。方法的参数类型、顺序就是VS猜测的,如果不正确或者需要调整只要选中对应的语句,然后在【属性】窗口中修改Parameters属性即可。

5、增加新的SQL语句本质论,探寻源码:不能并发调用。

6、像使用普通类的方法一样使用Adapter。SQL语句不用再写在界面代码中。这就是一种数据访问层(DAL:Data Access Layer)

二、TypedDataSet练习

7、用类型化DataSet重写登录、数据导入、手机号码归属地查询、省市选择等程序。

8、补充问题:

  • 看mdf中数据没有改变?把那段代码放到Main中。
  • 登录错误三次被锁定的问题,输入对了也不让登陆,这是错误码?就应该如此,防止暴力破解。
  • 执行UpdateQuery以后本地DataSet并没有更新。

三、强类型DataSet其他

9、通过查看生成的源代码的值,生成的强类型TableAdapter默认每次调用方法都是打开连接、执行、关闭连接,而如果操作之前连接已经打开则不会自动帮我们连接、关闭,因此如果想批量操作提高效率可以操作之前先自己Open,操作完毕再Close。经测试:插入三千条数据,不优化用了45秒,优化后只用一两秒。回答面试问题:如何优化访问数据库的效率

 adapter.Connection.Open();for (int i = 0; i < 3000; i++){adapter.Insert(i.ToString(), i.ToString(), 0);}adapter.Connection.Close();

 

10、常见错误:DataSet ds = new DataSet();ds = GetData();变量名和对象。

  相关解决方案