小议ADO.NET对象模型

       了解ADO.NET模型对数据应用程序开发很重要,下面是我今天学习总结的ADO.NET新手入门级的知识,希望对新手有用,也期待以这块破砖头引来高手们的玉哦!
       DataSet(数据集)。它表示整个数据库的一个子集,无需跟数据库有直接连接,缓存在机器中,DataSet需要
周期性地跟父数据库进行连接,以对数据库和DataSet相互更新。
       DataSet不仅仅从一个表中获得几行,而且要获得一组表,它们包含有原数据库关系和约束的必要原数据。
       DataSet由DataTable对象和DataRelation对象组成,Tables属性返回的一个DataTableCollection保存着所有
的DataTable对象。
DataSet结构:

       Rows。DataTable的Rows集合返回表的行集合。使用这个集合查看数据库的查询结果,在历遍查看每个记录。要访问数据集,我们只需要访问DataSet中的表DataTable,然后历遍Rows集合即可。

 

       DataAdapter(数据库适配器)。是关系型数据库的抽象,它的角色是作为DataSet和数据库之间的桥梁,DataAdapter提供的Fill()方法可以从数据库中获取数据并生成DataSet。

数据通讯的过程如图:

 

下面让我们动手试试吧!
数据库表结构:

 

测试代码如下:
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsApplication5
{
    
public partial class Form1 : Form
    {
        
public Form1()
        {
            InitializeComponent();
        }

        
private void Form1_Load(object sender, EventArgs e)
        {
            
string commandstring = "select foodname,id ,foodprice from tb_food ";
            
string connectionstring = "server=.;database=db_MrCy;uid=sa;pwd=";
            SqlDataAdapter DataAdapter 
= new SqlDataAdapter(commandstring, connectionstring);      //  
            DataSet dataset = new DataSet();
            DataAdapter.Fill(dataset);                   
//  填充到数据集
            DataTable dataTable = dataset.Tables[0];

            
foreach (DataRow dataRow in dataTable.Rows)
                listBox1.Items.Add(dataRow[
"foodname"]);
           
        }
    }
}
 
测试结果:
用下面代码,我们可以简单地得到某条记录的某个字段值:
Code
 
后话:我觉得本文知识点对VB程序员的ADO.NET迁移很重要,究其原因,是ADO.NET的非连接型(disconnecten)的数据架构,在这里数据从数据库取出,缓存在本地及其中。由上述select语句得到的DataSet数据集只包含foodname,id ,foodprice三个字段,所得得到的dataTable结构也同样道理。


 

posted on 2009-03-05 13:50  冠华仔  阅读(2805)  评论(14编辑  收藏  举报

导航