ADO.NET数据访问方式:强类型DataSet
2011-09-18 19:45
447 查看
使用VS自动生成DataSet (强类型)
添加→新建项→数据集
将表(表必须有主键)从服务器资源管理器拖放到DataSet中(拖放过程根据表单结构自动生成强类型DataSet等类/并没有将数据拖过来/并自动数据库连接写在App.Config中)
常见问题: 类内部定义的类要通过包含namespace的全名来引用(不能省略)/类内部定义类就能避免同一namespace下类不能重名的问题
服务器连接(ConnectionString): 数据连接(服务器资源管理器中)右键→添加连接(本地/异地数据库服务器及数据库)/T_UserTableAdapter的Connection属性: 显示连接信息
服务器连接(ConnectionString)的修改: ①App.Config②Properties.Settings
DataSet(强类型)
生成与数据库交互的类(类名: 表名+类名)
T_User→T_UserTableAdapter→项目名.数据集.T_UserDataTable
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(强类型)的更新
T_PersonsTableAdapter.Update(): 更新(要求表必须有主键)
设主键 DataSet(强类型)自动生成T_PersonsTableAdapter.UpdateCommand/.DeleteCommand/.InsertCommand等
服务器资源管理器中的表有改动时DataSet(强类型)的同步: ①删掉重新拖拽②DataSetT_Persons.xsd(视图)中T_Persons上右键→配置(查询生成器/完成)
Update/GetData/Insert/Delete:
T_PersonsTableAdapter.Update()
T_PersonsTableAdapter.GetDate()
T_PersonsTableAdapter.Insert(“jim”,20)
T_PersonsTableAdapter.Delete(id,name,age)
DataSet(强类型)空值判断: T_PersonsRow.IsNameNull //bool类型
DataSet(强类型)增加自定义SQL语句
DataSetT_Persons.xsd(视图)中T_Persons右键→添加→Query→使用SQL语句→select(返回行)/select(返回单值)/update/delete/insert→生成新的方法
方法的参数: SQL中@参数
调用: T_PersonsTableAdapter.新方法名()
DataSet(强类型)原理之Connection
DataSet(强类型)默认每次调用方法都打开 操作 关闭连接(打开之前检查是否为打开 是则不再打开/操作完成之后检查打开之前是否为打开 是则不再关闭)
手动打开 关闭连接(T_UsersTableAdapter.Connection.Open): 对于批量操作将大量节省时间
添加→新建项→数据集
将表(表必须有主键)从服务器资源管理器拖放到DataSet中(拖放过程根据表单结构自动生成强类型DataSet等类/并没有将数据拖过来/并自动数据库连接写在App.Config中)
常见问题: 类内部定义的类要通过包含namespace的全名来引用(不能省略)/类内部定义类就能避免同一namespace下类不能重名的问题
服务器连接(ConnectionString): 数据连接(服务器资源管理器中)右键→添加连接(本地/异地数据库服务器及数据库)/T_UserTableAdapter的Connection属性: 显示连接信息
服务器连接(ConnectionString)的修改: ①App.Config②Properties.Settings
DataSet(强类型)
生成与数据库交互的类(类名: 表名+类名)
T_User→T_UserTableAdapter→项目名.数据集.T_UserDataTable
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(强类型)的更新
T_PersonsTableAdapter.Update(): 更新(要求表必须有主键)
设主键 DataSet(强类型)自动生成T_PersonsTableAdapter.UpdateCommand/.DeleteCommand/.InsertCommand等
服务器资源管理器中的表有改动时DataSet(强类型)的同步: ①删掉重新拖拽②DataSetT_Persons.xsd(视图)中T_Persons上右键→配置(查询生成器/完成)
Update/GetData/Insert/Delete:
T_PersonsTableAdapter.Update()
T_PersonsTableAdapter.GetDate()
T_PersonsTableAdapter.Insert(“jim”,20)
T_PersonsTableAdapter.Delete(id,name,age)
DataSet(强类型)空值判断: T_PersonsRow.IsNameNull //bool类型
DataSet(强类型)增加自定义SQL语句
DataSetT_Persons.xsd(视图)中T_Persons右键→添加→Query→使用SQL语句→select(返回行)/select(返回单值)/update/delete/insert→生成新的方法
方法的参数: SQL中@参数
调用: T_PersonsTableAdapter.新方法名()
DataSet(强类型)原理之Connection
DataSet(强类型)默认每次调用方法都打开 操作 关闭连接(打开之前检查是否为打开 是则不再打开/操作完成之后检查打开之前是否为打开 是则不再关闭)
手动打开 关闭连接(T_UsersTableAdapter.Connection.Open): 对于批量操作将大量节省时间
相关文章推荐
- ADO.NET数据访问方式:DataSet
- ADO.NET数据访问方式:SqlDataReader
- 两种数据访问方式:从ADO 到ADO.NET
- ADO.NET - 连接方式数据访问SqlCommand
- ADO.NET中的数据访问--强类型
- ADO 与ADO.NET两种数据访问方式区别。
- ADO与ADO.NET两种数据访问方式区别
- 黑马程序员_学习日记48_616数据库开发及ADO.Net(带参数的Sql语句、数据库与文本文件导入导出、省市联动、资料管理器、DataSet (ado.net断开式数据访问)、SQLHelper)
- ADO 与ADO.NET两种数据访问方式区别
- ADO.NET访问数据-(2) DataSet本地缓存与数据库的交互过程,以及应用
- ADO.NET访问数据-(2) DataSet本地缓存与数据库的交互过程,以及应用
- ADO与ADO.NET两种数据访问方式区别
- 数据访问技术系列课程 笔记(2) ADO.NET 连接方式进行数据访问
- ADO.NET访问数据-DataSet本地缓存与数据库的交互过程,以及应用
- ADO 与ADO.NET两种数据访问方式区别
- ADO 与ADO.NET两种数据访问方式区别
- 初识ADO.net-访问数据的两种方式
- 关于ADO.NET下数据的两种访问方式
- 初识ADO.net-访问数据的两种方式
- ADO 与ADO.NET两种数据访问方式区别?