ADONET可以在与数据库断开连接的方式下通过DataSet或DataTable对象进行数据处理当需要更新数据时才重新与数据源进行连接并更新数据源
DataTable对象表示保存在本机内存中的表它提供了对表中行列数据对象的各种操作可以直接将数据从数据库填充到DataTable对象中也可以将DataTable对象添加到现有的DataSet对象中
首先了解下ADONET的基本结构图吧
下面再说说DataTable对象创建方式
创建DataTable对象采用下列两种方式之一
使用DataTable类的构造函数创建DataTable对象例如
DataTable table = new DataTable( )
调用DataSet的Tables对象的Add方法创建DataTable对象
DataSet dataset = new dataSet( )
DataTable table = datasetTablesAdd(MyTableName)
在DataTable对象中添加列
调用DataTable对象的Column中的Add方法添加列例如
DataTable table = new DataTable(table)
tableColumnsAdd(姓名typeof(SystemDataSqlTypesSqlString))
tableColumnsAdd(年龄typeof(SystemDataSqlTypesSqlInt))
注意由于SQL Server数据库中的有些数据类型(如SqlDateTimeSqlDecimal和SqlString等)和公共语言运行库(CLR)不相同要将创建的表保存到SQL Server数据库中要使用SystemDataSqlType命名空间中提供的SQL Server数据类型
在DataTable对象中创建行
由于DataTable对象的每一行都是一个DataRow对象所以创建行时可以利用DataTable对象的NewRow方法创建一个DataRow对象并设置新行中各列的数据然后利用Add方法将DataRow对象添加到表中例如
//dt是一个DataTable对象
DataRow row = dtNewRow( )
row[姓名] = 张三;
row[年龄] = ;
dtRowsAdd(row)
将SQL Server数据库中的表填充到DataTable对象中
通过DataAdapter对象的Fill方法完成
string connectionString = PropertiesSettingsDefaultMyDatabaseConnectionString;
SqlConnection conn = new SqlConnection(ConnectionString)
SqlDataAdapter adapter = new SqlDataAdapter(Select * from MyTableconn)
DataSet dataset = new DataSet( )
//如果不指定表名则系统自动使用默认的表名
adapterFill(dataset)
//可以使用索引生成的表
dataGridViewDataSource = datasetTables[];
DataSet 对象
创建DataSet对象
[解决方案资源管理器]〉添加一个新建或者已经存在的数据库
[数据]〉[创建数据源]〉创建或添加一个已经存在的数据库
绑定窗体控件时使用向导创建DataSet对
DataSet MyDatabase = new DataSet( )
填充DataSet对象
创建DataSet后就可以使用SqlDataAdapter对象把数据导入到DataSet对象中比如通过Fill方法将数据填充到DataSet中的某个表中