今天尝试了完全使用代码来操作ADO.NET,并测试了使用dataset绑定数据到gridview和使用dataread绑定数据的操作方法,经测试在一万条记录下,dataread的载入数据速度比dataset快一倍。
在网上找了各种代码,翻了各种电子书与纸质书,还是把以下两件事搞定了,为了与兄弟们分享这段简单的入门代码,特贴出来,欢迎交流指教。
不知道谁个有关天ado.net2.0的类关系图或是类的关系介绍层次结构的资料,能否共享共享....我的邮件是km1860@gmail.com
//Example_AdoNetShowDataForGridView.aspx文件
//----------------------------------------------------------------------------
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head id ="Head1" runat ="server" >
< title > 使用ADO.NET显示显示数据 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< div >
DataSet绑定 < asp:Button ID ="butDataSetBind" runat ="server" OnClick ="butDataSetBind_Click"
Text ="使用DataSet绑定" />< br />
< asp:GridView ID ="GridView1" runat ="server" AutoGenerateColumns ="False" >
< Columns >
< asp:BoundField DataField ="FID" HeaderText ="编号" />
< asp:BoundField DataField ="FPeopleID" HeaderText ="操作人ID" />
< asp:BoundField DataField ="FSource" HeaderText ="来源" />
< asp:BoundField DataField ="FOperationUser" HeaderText ="操作者" />
< asp:BoundField DataField ="FTime" HeaderText ="时间" />
< asp:BoundField DataField ="FTitle" HeaderText ="标题" />
</ Columns >
</ asp:GridView >
< br />
DataReader绑定 < asp:Button ID ="butDateReaderBind" runat ="server" OnClick ="butDateReaderBind_Click"
Text ="使用DataReadert绑定" /></ div >
< asp:GridView ID ="GridView2" runat ="server" AutoGenerateColumns ="False" >
< Columns >
< asp:BoundField DataField ="FID" HeaderText ="编号" />
< asp:BoundField DataField ="FPeopleID" HeaderText ="操作人ID" />
< asp:BoundField DataField ="FSource" HeaderText ="来源" />
< asp:BoundField DataField ="FOperationUser" HeaderText ="操作者" />
< asp:BoundField DataField ="FTime" HeaderText ="时间" />
< asp:BoundField DataField ="FTitle" HeaderText ="标题" />
</ Columns >
</ asp:GridView >
</ form >
</ body >
</ html >
//Example_AdoNetShowDataForGridView.aspx.cs文件
//-----------------------------------------------------------------------------------------------------
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Example_Example_AdoNetShowDataForGridView : System.Web.UI.Page
... {
//创建数据库连接对象
public SqlConnection objMyconn = new SqlConnection();
protected void Page_Load(object sender, EventArgs e)
...{
//设置连接字符串
objMyconn.ConnectionString = "Pooling=true;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=DotNetExampleDB;Data Source=ZMJINNB";
//打开数据库
objMyconn.Open();
}
protected void butDataSetBind_Click(object sender, EventArgs e)
...{
//------------------------------------------------------------------------
//创建DataSet
DataSet objMyds = new DataSet();
//创建数据代理DataAdapter
SqlDataAdapter objMyadp = new SqlDataAdapter("Select * from Event_Info", objMyconn);
//使用数据代码对象将数据填充到数据集对象中,并指定表的名名为:Event_Info
objMyadp.Fill(objMyds, "Event_Info");
//将数据集绑定到GridView上并显示出来
this.GridView1.DataSource = objMyds;
this.GridView1.DataMember = "Event_Info";
this.GridView1.DataBind();
long endtime = DateTime.Now.Ticks;
}
protected void butDateReaderBind_Click(object sender, EventArgs e)
...{
//------------------------------------------------------------------------
//下面的方法使用DataReader绑定数据,经测试,在1万条记录的情况下,速度要比dataset快一倍
//
//使用连接对象创建Command,否则需要指定Command的Connection对象
SqlCommand objMycmd = new SqlCommand("Select * from Event_Info", objMyconn);
//创建DataReader对象
SqlDataReader objMydr = objMycmd.ExecuteReader();
//将数据集绑定到GridView上并显示出来
this.GridView2.DataSource = objMydr;
this.GridView2.DataBind();
}
}
// 用纳秒来计时代码:可用作测试执行时间
// ---------------------------------------------------------
// long starttime = DateTime.Now.Ticks;
// TimeSpan timeTaken = new TimeSpan(endtime - starttime);
// Response.Write("消耗时间:" + timeTaken);
//创建数据表代码(测试数据就自己搞定吧,呵呵)
//-----------------------------------------------------------------------------------------------------
drop table [ dbo ] . [ Event_Info ]
GO
CREATE TABLE [ dbo ] . [ Event_Info ] (
[ FID ] [ varchar ] ( 32 ) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ FItemID ] [ varchar ] ( 32 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ FPeopleID ] [ varchar ] ( 32 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ FSource ] [ varchar ] ( 128 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ FOperationUser ] [ varchar ] ( 32 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ FTime ] [ datetime ] NULL ,
[ FTitle ] [ varchar ] ( 256 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ FContents ] [ varchar ] ( 1024 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ FFile ] [ varchar ] ( 128 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ FState ] [ varchar ] ( 32 ) COLLATE Chinese_PRC_CI_AS NULL ,
[ FNextRun ] [ datetime ] NULL ,
[ FOrderID ] [ float ] NULL ,
[ FREMARK ] [ varchar ] ( 256 ) COLLATE Chinese_PRC_CI_AS NULL
) ON [ PRIMARY ]
GO