DataSet,DataTable,DateView的关系和用法
2010-11-05 14:02
459 查看
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][“列名字”]
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;
现在看出原因了吧!!
,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][“列名字”]
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;
现在看出原因了吧!!
相关文章推荐
- DataSet,DataTable,DateView的关系和用法
- DataSet,DataTable,DateView的关系和用法
- DataSet,DataTable,DateView的关系和用法
- 关于DataSet、DataView、DataTable、DataRow、时间格式转换的一些用法
- DataSet及DataTable用法详解
- DataTable DataSet DataColumn DataRow 区别及用法
- C#:DataSet和DataTable区别和用法
- A-dataset、dataview、 datatable、 datacolum、datarow的关系
- B-dataset、dataview、 datatable、 datacolum、datarow的关系
- DataSet和DataTable区别和用法
- DataSet,DataReader,DataTable关系
- DataSet数据关系与DataTable数据表的约束
- C# 关于DataSet, DataTable, DataRow 和DataColumn的区别和用法
- DataSet中DataTable的用法:查询
- DataSet用法一:添加代码创建的表DataTable,设置主键外键,读取及修改DataSet表中数据
- C#:DataSet和DataTable区别和用法
- DataSet,DataTable,DataView的关系及简单应用
- dataset、dataview、 datatable、 datacolum、datarow的关系一
- dataset、dataview、 datatable、 datacolum、datarow的关系
- DataTable ,DataRow ,DataSet 用法