ADO.NET数据访问方式:强类型DataSet

  • 使用VS自动生成DataSet (强类型)
  1. 添加→新建项→数据集
  2. 将表(表必须有主键)从服务器资源管理器拖放到DataSet中(拖放过程根据表单结构自动生成强类型DataSet等类/并没有将数据拖过来/并自动数据库连接写在App.Config中)
  3. 常见问题: 类内部定义的类要通过包含namespace的全名来引用(不能省略)/类内部定义类就能避免同一namespace下类不能重名的问题
  4. 服务器连接(ConnectionString): 数据连接(服务器资源管理器中)右键→添加连接(本地/异地数据库服务器及数据库)/T_UserTableAdapter的Connection属性: 显示连接信息
  5. 服务器连接(ConnectionString)的修改: ①App.Config②Properties.Settings
  • DataSet(强类型)
  1. 生成与数据库交互的类(类名: 表名+类名)
  2. T_User→T_UserTableAdapter→项目名.数据集.T_UserDataTable
  3. T_UserTableAdapter.GetData()方法: 获得T_UserDataTable

强类型DataSet1.DataSetPersons

强类型DataSet1.DataSetPersons.T_PersonsDataTable

强类型DataSet1.DataSetPersons.T_PersonsRow

强类型DataSet1.DataSetPersonsTableAdapters.T_PersonsTableAdapter

强类型DataSet1.DataSetPersonsTableAdapters.TableAdapterManager

//拖动时生成namespace: 强类型DataSet1.DataSetPersonsTableAdapters{} 故T_PersonsTableAdapter可直接使用/而T_PersonsDataTable定义在DataSetPersons类内部 所以需要引用全名

  • DataSet(强类型)的更新
  1. T_PersonsTableAdapter.Update(): 更新(要求表必须有主键)
  2. 设主键 DataSet(强类型)自动生成T_PersonsTableAdapter.UpdateCommand/.DeleteCommand/.InsertCommand等
  3. 服务器资源管理器中的表有改动时DataSet(强类型)的同步: ①删掉重新拖拽②DataSetT_Persons.xsd(视图)中T_Persons上右键→配置(查询生成器/完成)
  4. Update/GetData/Insert/Delete: 

T_PersonsTableAdapter.Update()

T_PersonsTableAdapter.GetDate()

T_PersonsTableAdapter.Insert(“jim”,20)

T_PersonsTableAdapter.Delete(id,name,age)

  1. DataSet(强类型)空值判断: T_PersonsRow.IsNameNull  //bool类型
  • DataSet(强类型)增加自定义SQL语句
  1. DataSetT_Persons.xsd(视图)中T_Persons右键→添加→Query→使用SQL语句→select(返回行)/select(返回单值)/update/delete/insert→生成新的方法
  2. 方法的参数: SQL中@参数
  3. 调用: T_PersonsTableAdapter.新方法名()
  • DataSet(强类型)原理之Connection
  1. DataSet(强类型)默认每次调用方法都打开 操作 关闭连接(打开之前检查是否为打开 是则不再打开/操作完成之后检查打开之前是否为打开 是则不再关闭)
  2. 手动打开 关闭连接(T_UsersTableAdapter.Connection.Open): 对于批量操作将大量节省时间

posted on 2011-09-18 19:45  les_vies  阅读(535)  评论(0编辑  收藏  举报

导航