DataSet,DataTable,DateView的关系和用法

DataSet,DataTable,DateView的关系和用法

DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不在依赖于数据库链路。

DataSet就是一个临时的小仓库,通过sqlDataApert,可相当于卡车,将数据从数据库中通过适配器sqlDataApert放到DataSet中,所以即使断开了连接,也照样可以与数据库打交道,下面看一个例子:

public static DataSet Query(string sqlstr)

      {

         using(OleDbConnection conn=new OleDbConnection(CONNSTR))

         {

             try

             {

                 DataSet ds = new DataSet()

                 OleDbDataAdapter da = new OleDbDataAdapter();

                 da.Fill(ds, "ds");

                 return ds;

             }

             catch (OleDbException e)

             {

                 throw new Exception(e.Message);

             }

         }

      }

可以看出基本用法,通过OleDbDataAdapter的Fill方法将数据填充到DataSet中,其中

da.Fill(ds, "ds"); 后面的ds是表明,因为DataSet中包含很多表,其实我们就是把数据添加到DataSet的表中,这个在后面会讲到,如果不写,则以索引0开始

DataTable dt=ds.tables[“ds”]

DataTable dt=ds.tables[0];

 

下面我们有必要看看DataSet的组成部分

DataSet有很多DataTable,DataTable中有很多的DataView

DataTable中有很多的DataRow和DataColumn组成

获得具体的值就是:

Ds.tables[“表明”].Rows[0][“列名字”]

 

View Code
    DataTable dt =  new DataTable();
        DataColumn numColumn =  new DataColumn( " num ");
        dt.Columns.Add(numColumn);
         for ( int i = 0; i < 5);i++)
        {
            DataRow row = sdt.NewRow();
            row[ " num "] = dt.Rows[i][ " num "].ToString();
            dt.Rows.Add(row);
        }

一般都是先创建行,在创建列,在列中添加内容

 

DataView是显示出来的视图,比如我们要绑定到GirlView的数据源绑定中,为了显示,就用到了DataView

DataView dv=new DataView();

dv.table=ds.tables[“”]

this.GirlView.DataSource=dv;

 

或者使用DefaultView,这样就不用实例化DataView了;

this.GirlView.DataSource= ds.tables[0].DefaultView;

 

我们还可以DataView进行过滤

 

ds.Tables[0].DefaultView.RowFilter = "id=1";

或者

DataView dv=new DataView();

dv.RowFilter=”id=1”;

 

DataSet的多表查询

多表查询或者数据量很大的时候我们都可以使用DataSet,下面就看看使用DataSet如何进行多表查询,下面看个例子

public static DataSet Query(string SQLString)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            DataSet ds = new DataSet();
            try
            {
                connection.Open();
                SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                command.Fill(ds, "ds");
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                throw new Exception(ex.Message);
            }
            return ds;
        }
    }

string citysql = "select * from soncity;select * from partytype";
 ds= DbHelperSQL.Query(citysql);
 s1.DataSource = ds.Tables[0].DefaultView;
 s1.DataTextField = "sonname";
 s1.DataBind();
 s2.DataSource = ds.Tables[1].DefaultView;

 s2.DataTextField = "partytypename";
s2.DataBind();

从上面我们可以看出如何进行多表查询了,sql语句可以写多个,用分号隔开就可以了

string citysql = "select * from soncity;select * from partytype";

返回的时候就是按着索引从0开始返回表格

 s1.DataSource = ds.Tables[0].DefaultView;

 s2.DataSource = ds.Tables[1].DefaultView;

DataSet和sqlCommand的关系

使用SqlDataAdapter 的时候不知道有没有想过这样的问题,为什么数据库不用打开直接就可以连接了呢?在这里我就来告诉大家原因:

  其实 数据库的连接是隐式的被打开的

SqlDataAdapter  sqlDateAdapter = new SqlDataAdapter(sql语句,connection);

 

其实它是隐式的替代了下面的代码:

conn.Open();

                SqlCommand cmd = new SqlCommand();

                cmd.CommandText = "select * from googs";

                cmd.CommandType = CommandType.Text;

                cmd.Connection = conn;

                SqlDataAdapter   sqlDateAdapter = new SqlDataAdapter();

                sqlDateAdapter.SelectCommand = cmd;

现在看出原因了吧!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C#中的DataSetDataTable是非常常用的数据存储和处理工具,下面是一些应用实例: 1. 数据库查询结果存储 在C#中,我们可以使用DataSetDataTable来存储数据库查询结果。例如,我们可以使用DataAdapter类从数据库中检索数据,并将结果存储在DataTable中。然后,我们可以使用DataTable的方法和属性来处理和操作这些数据。 2. 数据导入和导出 DataSetDataTable也可以用于数据导入和导出。例如,我们可以使用DataTable的WriteXml方法将数据保存为XML文件,然后使用ReadXml方法将数据加载回DataTable中。同样,我们也可以使用DataSet的WriteXml和ReadXml方法来导入和导出数据。 3. 数据筛选和排序 使用DataTable的Select方法可以筛选出符合条件的数据行,而使用DataTable的Sort方法可以对数据进行排序。这些方法可以帮助我们快速地处理和分析数据。 4. 数据绑定 DataSetDataTable也可以用于数据绑定。例如,我们可以使用DataGrid控件将DataTable中的数据绑定到一个表格中,然后可以对表格进行排序、筛选和编辑操作。 总之,DataSetDataTable是C#中非常有用的数据存储和处理工具,可以帮助我们快速地处理和分析数据。 ### 回答2: 很抱歉,我需要更多的上下文信息才能回答您提出的问题。请提供更多的信息。 ### 回答3: 抱歉,您的问题中似乎缺少了一部分内容,无法理解您想要询问的具体问题。请您提供更详细的问题或背景信息,我将尽力为您提供准确的答案和帮助。谢谢!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值