了解ADONET模型对数据应用程序开发很重要下面是我今天学习总结的ADONET新手入门级的知识希望对新手有用也期待以这块破砖头引来高手们的玉哦!
DataSet(数据集)它表示整个数据库的一个子集无需跟数据库有直接连接缓存在机器中DataSet需要周期性地跟父数据库进行连接以对数据库和DataSet相互更新
DataSet不仅仅从一个表中获得几行而且要获得一组表它们包含有原数据库关系和约束的必要原数据
DataSet由DataTable对象和DataRelation对象组成Tables属性返回的一个DataTableCollection保存着所有的DataTable对象
DataSet结构:
RowsDataTable的Rows集合返回表的行集合使用这个集合查看数据库的查询结果在历遍查看每个记录要访问数据集我们只需要访问DataSet中的表DataTable然后历遍Rows集合即可
DataAdapter(数据库适配器)是关系型数据库的抽象它的角色是作为DataSet和数据库之间的桥梁DataAdapter提供的Fill()方法可以从数据库中获取数据并生成DataSet
数据通讯的过程如图:
下面让我们动手试试吧!
数据库表结构:
测试代码如下
usingSystem;
usingSystemCollectionsGeneric;
usingSystemComponentModel;
usingSystemData;
usingSystemDrawing;
usingSystemText;
usingSystemWindowsForms;
usingSystemDataSqlClient;
namespaceWindowsApplication
{
publicpartialclassForm:Form
{
publicForm()
{
InitializeComponent();
}
privatevoidForm_Load(objectsenderEventArgse)
{
stringcommandstring=selectfoodnameidfoodpricefromtb_food;
stringconnectionstring=server=;database=db_MrCy;uid=sa;pwd=;
SqlDataAdapterDataAdapter=newSqlDataAdapter(commandstringconnectionstring);//
DataSetdataset=newDataSet();
DataAdapterFill(dataset);//填充到数据集
DataTabledataTable=datasetTables[];
foreach(DataRowdataRowindataTableRows)
listBoxItemsAdd(dataRow[foodname]);
}
}
}
测试结果
用下面代码我们可以简单地得到某条记录的某个字段值
Code
MessageBoxShow(dataTableRows[][foodname]ToString());
后话我觉得本文知识点对VB程序员的ADONET迁移很重要究其原因是ADONET的非连接型(disconnecten)的数据架构在这里数据从数据库取出缓存在本地及其中
由上述select语句得到的DataSet数据集只包含foodnameidfoodprice三个字段所得得到的dataTable结构也同样道理