Windows Phone 7手机开发、
.Net培训、期待与您交流!
1、DataSet离线结果集
我们先回顾下前面学到的SqlDataReader 对象,这个对象存储的是我们的sql语句返回结果集,它和我们现在要学的DataSet的区别在于
SqlDataReader 是连接相关的,查询结果是放在数据库服务器中,一旦我们的连接断开了,那么我们就不能使用这个结果了,而且,SqlDataReader的Read()方法只能读取当前游标指定的行,
DataSet是断开连接式的,它是放在我们本地的内存中的,也就是说,一旦我们通过连接拿到了DataSet结果集,那么就算连接断开,我们也可以使用这个结果集,而且,在这个结果集中,我们还可以读取任意行的数据,而不必一条一条的去读取,
SqlDataReader 在数据量大的时候比较有用,能有效减少对本机内存的占用,DataSet在数据量较小的时候能起到较好的效果,有效降低数据库服务器的压力。
2、使用DataSet
using ( SqlConnection conn = new SqlConnection ( "Data Source=.;Initial Catalog=test;User ID=sa;Password=123456" ) )
{
conn.Open ( );
using ( SqlCommand cmd = new SqlCommand ( ) )
{
cmd.CommandText = "select * from T_user ";
cmd.Connection = conn;
SqlDataAdapter adapter = new SqlDataAdapter ( cmd );//创建一个适配器 ,
DataSet dataset = new DataSet ( );//创建一个DataSet
adapter.Fill ( dataset);//执行sql语句并将结果填充到dataset中
DataTableCollection dts = dataset.Tables; //获取dataset中的表集合
DataTable table = dts[0];//cmd.CommandText可以有多条命令,所以可能结果有多个表,但一般情况下我们不会写多条命令在一个commandtext中,所以我们只取集合中的第一个表
DataRowCollection DR = table.Rows;//获取表中的行集合
for ( int i = 0; i < DR.Count; i++ )//遍历行集合
{
DataRow row = DR[i]; //取得一个行对象
int id = (int)row["d"]; //根据列名来取得当前行的值
string name =(string)row["name"];
int age = ( int ) row["age"];
MessageBox.Show (id+","+name+age );
}
}
}
SqlDataAdapter类是一个适配器,用来与数据库与服务器进行通信,
DataSet 就是 我们的数据集
adapter.Fill ( dataset)这句代码的意义就是发送sql语句并取得结果,将结果存入dataset中
dataset重要的属性 ,
Tables属性,返回一个 DataTableCollection对象,这是一个表的集合,集合中的每个元素都是一个DataTable对象
DataTable对象的属性
Rows属性 返回一个 DataRowCollection对象,这是表中的所有行的集合, 每个元素都是一个DataRow 对象
columns属性 返回一个 DataColumnCollection对象,这是表中的所有列的集合, 每个元素都是一个DataColumn 对象
DataRow 具有一个索引器方法,可以根据列名,列号来获取当前行的列值。
3、配置文件
由于程序中多次需要连接数据库,那么在建立连接的时候我们就需要多次书写连接字符串,不仅不方便,而且不容易修改,如果我们需要换一个数据库,那我们必须在程序中修改所有连接字符串,为了简化这种操作,我们引进了配置文件。
配置文件是一个名称为app.config的文件,他是符合xml格式的。我们将连接字符串定义在这个配置文件中,当程序中需要连接字符串时,我们可以读取这个配置文件,当需要修改时,我们只需修改配置文件。
注意,在使用配置文件前,我们必须将system.configuration程序集添加到当前项目的引用清单中,并且在当前代码中使用using system.configuration
添加完之后,我们可以在配置文件中配置我们的连接字符串,有两种方式
<configuration>
<connectionStrings>
<add name="Dbconnection" connectionString="Data Source=.;Initial Catalog=test;User ID=sa;Password=123456"/>
</connectionStrings>
<appSettings>
<add key="Dbconnection" value="Data Source=.;Initial Catalog=test;User ID=sa;Password=123456"/>
</appSettings>
</configuration>
使用 <connectionStrings>节点和<appSettings>节点设置都行,但是一般使用<connectionStrings>节点
如上设置后,我们就可以在程序中读取连接字符串
使用<connectionStrings>节点的读取语法
string connstr = ConfigurationManager.ConnectionStrings["Dbconnection"].ConnectionString;
使用了ConfigurationManager.ConnectionStrings的索引器方法,通过name属性来取得对应的ConnectionString
使用<appSettings>节点的读取语法
string connstr = ConfigurationManager.AppSettings["Dbconnection"];
取得连接字符串后,就可以使用SqlConnection conn = new SqlConnection(connstr)来创建一个连接对象了。
Windows Phone 7手机开发、 .Net培训、期待与您交流!
1、DataSet离线结果集
我们先回顾下前面学到的SqlDataReader 对象,这个对象存储的是我们的sql语句返回结果集,它和我们现在要学的DataSet的区别在于
SqlDataReader 是连接相关的,查询结果是放在数据库服务器中,一旦我们的连接断开了,那么我们就不能使用这个结果了,而且,SqlDataReader的Read()方法只能读取当前游标指定的行,
DataSet是断开连接式的,它是放在我们本地的内存中的,也就是说,一旦我们通过连接拿到了DataSet结果集,那么就算连接断开,我们也可以使用这个结果集,而且,在这个结果集中,我们还可以读取任意行的数据,而不必一条一条的去读取,
SqlDataReader 在数据量大的时候比较有用,能有效减少对本机内存的占用,DataSet在数据量较小的时候能起到较好的效果,有效降低数据库服务器的压力。
2、使用DataSet
using ( SqlConnection conn = new SqlConnection ( "Data Source=.;Initial Catalog=test;User ID=sa;Password=123456" ) )
{
conn.Open ( );
using ( SqlCommand cmd = new SqlCommand ( ) )
{
cmd.CommandText = "select * from T_user ";
cmd.Connection = conn;
SqlDataAdapter adapter = new SqlDataAdapter ( cmd );//创建一个适配器 ,
DataSet dataset = new DataSet ( );//创建一个DataSet
adapter.Fill ( dataset);//执行sql语句并将结果填充到dataset中
DataTableCollection dts = dataset.Tables; //获取dataset中的表集合
DataTable table = dts[0];//cmd.CommandText可以有多条命令,所以可能结果有多个表,但一般情况下我们不会写多条命令在一个commandtext中,所以我们只取集合中的第一个表
DataRowCollection DR = table.Rows;//获取表中的行集合
for ( int i = 0; i < DR.Count; i++ )//遍历行集合
{
DataRow row = DR[i]; //取得一个行对象
int id = (int)row["d"]; //根据列名来取得当前行的值
string name =(string)row["name"];
int age = ( int ) row["age"];
MessageBox.Show (id+","+name+age );
}
}
}
SqlDataAdapter类是一个适配器,用来与数据库与服务器进行通信,
DataSet 就是 我们的数据集
adapter.Fill ( dataset)这句代码的意义就是发送sql语句并取得结果,将结果存入dataset中
dataset重要的属性 ,
Tables属性,返回一个 DataTableCollection对象,这是一个表的集合,集合中的每个元素都是一个DataTable对象
DataTable对象的属性
Rows属性 返回一个 DataRowCollection对象,这是表中的所有行的集合, 每个元素都是一个DataRow 对象
columns属性 返回一个 DataColumnCollection对象,这是表中的所有列的集合, 每个元素都是一个DataColumn 对象
DataRow 具有一个索引器方法,可以根据列名,列号来获取当前行的列值。
3、配置文件
由于程序中多次需要连接数据库,那么在建立连接的时候我们就需要多次书写连接字符串,不仅不方便,而且不容易修改,如果我们需要换一个数据库,那我们必须在程序中修改所有连接字符串,为了简化这种操作,我们引进了配置文件。
配置文件是一个名称为app.config的文件,他是符合xml格式的。我们将连接字符串定义在这个配置文件中,当程序中需要连接字符串时,我们可以读取这个配置文件,当需要修改时,我们只需修改配置文件。
注意,在使用配置文件前,我们必须将system.configuration程序集添加到当前项目的引用清单中,并且在当前代码中使用using system.configuration
添加完之后,我们可以在配置文件中配置我们的连接字符串,有两种方式
<configuration>
<connectionStrings>
<add name="Dbconnection" connectionString="Data Source=.;Initial Catalog=test;User ID=sa;Password=123456"/>
</connectionStrings>
<appSettings>
<add key="Dbconnection" value="Data Source=.;Initial Catalog=test;User ID=sa;Password=123456"/>
</appSettings>
</configuration>
使用 <connectionStrings>节点和<appSettings>节点设置都行,但是一般使用<connectionStrings>节点
如上设置后,我们就可以在程序中读取连接字符串
使用<connectionStrings>节点的读取语法
string connstr = ConfigurationManager.ConnectionStrings["Dbconnection"].ConnectionString;
使用了ConfigurationManager.ConnectionStrings的索引器方法,通过name属性来取得对应的ConnectionString
使用<appSettings>节点的读取语法
string connstr = ConfigurationManager.AppSettings["Dbconnection"];
取得连接字符串后,就可以使用SqlConnection conn = new SqlConnection(connstr)来创建一个连接对象了。
Windows Phone 7手机开发、 .Net培训、期待与您交流!