connectionPool.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Diagnostics;
namespace ADO_dataReader
{
public partial class connectionPool : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
string constr = "data source=.;initial catalog=School;User ID=sa;Password=842674;"; //Pooling=false";
using(SqlConnection con=new SqlConnection(constr))
{
string sql = "select * from Class3";
using(SqlCommand cmd=new SqlCommand(sql,con))
{
con.Open();
using(SqlDataReader reader=cmd.ExecuteReader())
{
if(reader.HasRows)
{
int c3=reader.GetOrdinal("cdesc");//使用列名的部分要放在循环外面,为了提高循环内的效率
while(reader.Read())
{
#region 弱类型方法getValue()和索引
//Response.Write(reader.GetValue(0).ToString());//能用getvalue的时候直接使用getvalue
//Response.Write(reader[1].ToString());
//Response.Write(reader[c3].ToString());
#endregion
#region 强类型方法 要考虑NULL的情况。考虑字段类型和赋值的变量类型。
float id = reader.GetInt32(0);
//double id= reader.getfloat(0); 数据类型必须能够接受sql中返回的数据的数据类型。如果数据库中对应的类型是float类型,接收的时候就不能用float,因为数据库中的float比net中的 float范围大,此时需要使用Double来接收。
string cName = reader.GetString(1);
string cDesc = reader.IsDBNull(2) ? "空" : reader.GetString(2);
Response.Write(id.ToString() + "--" + cName + "--" + cDesc);
#endregion
Response.Write("<br>");
}
}
}
}
}
}
}
}
}
dataReader.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
namespace ADO_dataReader
{
public partial class dataReader : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string constr = "data source=.;initial catalog=School;User ID=sa;Password=842674";
using (SqlConnection con = new SqlConnection(constr))
{
string sql = "select * from Class3";
using(SqlCommand cmd=new SqlCommand(sql,con))
{
con.Open();
using(SqlDataReader reader=cmd.ExecuteReader())
{
if(reader.HasRows)
{
int c3 = reader.GetOrdinal("cdesc");//使用列明的部分要放在循环外面,为了提高循环内的效率
while(reader.Read())
{
#region 弱类型方法getValue()和索引
//Response.Write(reader.GetValue(0).ToString());//能用getvalue的时候直接使用getvalue
//Response.Write(reader[1].ToString());
//Response.Write(reader["c3"].ToString());
#endregion
#region 强类型方法 要考虑NULL的情况,考虑字段类型和赋值的变量类型
float id = reader.GetInt32(0);
//double id = reader.GetFloat(0);数据类型必须能够接受sql中返回的数据的数据类型。如果数据库中对应的类型是float类型,接收的时候就不能用float,因为数据库中的float比net中的 float范围大,此时需要使用Double来接收。
string cname = reader.GetString(1);
string cdesc = reader.IsDBNull(2) ? "空" : reader.GetString(2);
Response.Write(id.ToString()+"--"+cname+"--"+cdesc);
#endregion
Response.Write("<br>");
}
}
}
}
}
}
}
}
}
lianxi2.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
namespace ADO_dataReader
{
public partial class Lianxi2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string constr = "data source=.;initial catalog=School;User ID=sa;Password=842674";
using (SqlConnection con = new SqlConnection(constr))
{
string sql = "select * from Student;select * from Class3";
using (SqlCommand cmd = new SqlCommand(sql, con))
{
con.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader.HasRows)
{
#region 读取多个结果集的方法
//do----while,do中先来读取第一个结果集,while(reader.NextResult())中判断是否还有结果集,如果有在do中再次读取第二个结果集,依次类推...
do
{
if(reader.HasRows)
{
while (reader.Read())
{
//内层循环获取列
for (int i = 0; i < reader.FieldCount; i++)
{
Response.Write(reader.GetValue(i));
}
Response.Write("<br>");
}
}
}
while(reader.NextResult());
#endregion
#region 读取一个结果集的方法
//while (reader.Read())
//{
// //内层循环获取列
// for (int i = 0; i < reader.FieldCount; i++)
// {
// Response.Write(reader.GetValue(i));
// }
// Response.Write("<br>");
//}
#endregion
}
}
}
}
}
}
}