Response.Write(reader.GetValue(i)+" ");
Response.Write("
");}}
catch(SqlExceptionex){Response.Write(ex.Message.ToString());}
finally{objConnection.Close();}}
5.保存、编译、运行程序
在“解决方案资源管理器”窗口中的“CommandExample.aspx”文件上右击,在快捷菜单中选择“设为起始页”菜单命令,然后单击工具栏上的“启动”按钮,运行该程序。
三、基于DataReader的简单数据访问程序
编写一个Web应用程序,使用Connection、Command、DataReader这3个对象实现数据访问。
分析
DataReader对象可以方便快捷地读取数据,在一些特殊场合,如应用程序不需要对数据做任何修改,只是读取和显示,使用DataReader对象可以大大节省系统资源。
操作步骤
1.建立ASP.NET网站
在VisualStudio.NET集成开发环境中,新建一个名为“Example”的ASP.NET网站,选择在文件系统E:
\asp8中建立,选择C#语言。
2.添加窗体页面
在“解决方案管理器”窗口中右击项目名称“Example”,在弹出的快捷菜单中选择“添加新项”菜单命令,添加一个命名为“DataReaderExample.aspx”的窗体,单击“添加”按钮。
3.添加控件
在“DataReaderExample.aspx”的“设计”页面上放置3个GridView控件。
4.修改Web.config
在Web.config文件的与之间添加如下用于数据库连接的代码。
uid=sa;pwd=;">
5.加载命名空间
因为需要连接SQLServer数据库,因此,在“DataReaderExample.aspx.cs”文件的开头加载命名空间。
usingSystem.Data.SqlClient;
6.创建一个SqlDataReader对象
在“DataReaderExample.aspx.cs”文件的Page_Load事件里添加如下代码。
protectedvoidPage_Load(objectsender,System.EventArgse){
StringstrConnection=System.Configuration.ConfigurationSettings.AppSettings["Northwind"];
SqlConnectionconn=newSqlConnection(strConnection);
StringstrCount="SelectCount(ProductName)asProductNumFrom[Products]";
conn.Open();SqlCommandcmd=newSqlCommand(strCount,conn);
SqlDataReaderreader=cmd.ExecuteReader();
GridView1.DataSource=reader;GridView1.DataBind();reader.Close();
StringstrSql="Selecttop3ProductName,CompanyName,UnitPrice"+"From[Products],[Suppliers]"+"Where[Products].SupplierID=[Suppliers].SupplierIDOrderby
ProductId;"+"Selecttop3CompanyName,ContactName,Address"+"From[Customers]OrderbyCustomerId";
cmd.CommandText=strSql;reader=cmd.ExecuteReader();
GridView2.DataSource=reader;GridView2.DataBind();reader.NextResult();
GridView3.DataSource=reader;GridView3.DataBind();conn.Close();}
7.保存、编译、运行程序
在“解决方案资源管理器”窗口中的“DataReaderExample.aspx”文件上右击,在快捷菜单中选择“设为起始页”菜单命令,然后单击工具栏上的“启动”按钮,运行该程序。
注意:
Web.config文件的使用
本例在Web.config中创建了一个名为“Northwind”的key,通过引用key字段的值获得连接字符串。
当包含连接字符串的文件很多时,如需更改字符串,只需要更改Web.config的连接字符串,这样,所有引用该key值的文件都不需要单独修改。
四、基于ADO.NET的人员基本信息管理系统
编写一个Web应用程序,实现简单的人员基本信息管理,具有基本的增删查改功能。
该程序要求实现人员基本信息基本的增删查改功能,因此首先可以使用GridView控件实现编辑和删除功能,其次可以单独做添加和查询小模块;根据程序的功能要求以及考虑到用户操作的方便性,应在一个网页上实现图书信息的列表显示、添加、查询、编辑等功能。
1.建立网站
在VisualStudio.NET集成开发环境中新建一个名为“Example”的ASP.NET网站,选择在文件系统E:
\asp8中建立,选择C#语言。
2.添加页面控件
选择“Default.aspx”设计视图,在页面中添加下表所示控件。
设计页面如下图所示。
3.定义全局变量
stringStrConnection="server=local;database=test;uid=sa;pwd=;";
SqlConnectionconn;SqlCommandcmd;
4.编辑Page_Load方法
protectedvoidPage_Load(objectsender,EventArgse){
if(!
IsPostBack){binddata();}}
5.编辑自定义binddata方法
protectedvoidbinddata(){
conn=newSqlConnection(StrConnection);conn.Open();
Stringsql="select*fromPeople";
SqlDataAdaptermyda=newSqlDataAdapter(sql,conn);
DataSetds=newDataSet();myda.Fill(ds,"People");
GridView1.DataSource=ds.Tables["People"].DefaultView;
GridView1.DataBind();conn.Close();}
6.编辑GridView1的“删除”按钮处理方法
01:
protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse){
02:
conn=newSqlConnection(StrConnection);conn.Open();
03:
Stringid=this.GridView1.DataKeys[e.RowIndex].Value.ToString();
04:
intidt=int.Parse(id);
05:
cmd=newSqlCommand();cmd.Connection=conn;
06:
cmd.CommandText="deletefromPeoplewherepkID="+idt;
07:
cmd.ExecuteNonQuery();conn.Close();binddata();}
7.编辑GridView1的“编辑”按钮处理方法
protectedvoidGridView1_RowEditing(objectsender,GridViewEditEventArgse){
GridView1.EditIndex=e.NewEditIndex;binddata();}
8.编辑GridView1的“更新”按钮处理方法
01:
protectedvoidGridView1_RowUpdating(objectsender,GridViewUpdateEvent
Argse){
02:
stringid=GridView1.DataKeys[e.RowIndex].Values[0].ToString();
03:
stringpkid=GridView1.Rows[e.RowIndex].Cells[2].Text.ToString();
04:
stringname=((TextBox)GridView1.Rows[e.RowIndex].Cells[3].
Controls[0]).Text.Trim();
05:
stringsex=((TextBox)GridView1.Rows[e.RowIndex].Cells[4].
Controls[0]).Text.Trim();
06:
stringaddress=((TextBox)GridView1.Rows[e.RowIndex].Cells[5].
Controls[0]).Text.Trim();
07:
stringborn=((TextBox)GridView1.Rows[e.RowIndex].Cells[6].
Controls[0]).Text.Trim();
08:
stringSqlStr="updatePeoplesetpkID='"+pkid+"',Name='"+name+
"',Sex='"
+sex+"',Address='"+address+"',Born='"+born+"'wherepkID="
+pkid;
09:
conn=newSqlConnection(StrConnection);conn.Open();
10:
cmd=newSqlCommand(SqlStr,conn);cmd.ExecuteNonQuery();
11:
cmd.Dispose();conn.Close();
12:
GridView1.EditIndex=-1;binddata();}
9.编辑GridView1的“取消”按钮处理方法
01:
protectedvoidGridView1_RowCancelingEdit(objectsender,GridViewCancel
EditEventArgse)
02:
{GridView1.EditIndex=-1;binddata();}
10.编辑“添加”按钮处理方法和自定义init方法
01:
protectedvoidButton2_Click(objectsender,EventArgse){
02:
conn=newSqlConnection(StrConnection);conn.Open();
03:
SqlCommandcmd=newSqlCommand("insertintoPeople(pkID,Name,Sex,
Address,Born)values(@pkID,@Name,@Sex,@Address,@Born)",conn);
04:
cmd.Parameters.Add("@pkID",SqlDbType.VarChar);cmd.Parameters.Add
("@Name",SqlDbType.VarChar);
05:
cmd.Parameters.Add("@Sex",SqlDbType.VarChar);cmd.Parameters.Add
("@Address",SqlDbType.VarChar);
06:
cmd.Parameters.Add("@Born",SqlDbType.VarChar);cmd.Parameters
["@pkID"].Value=TBpkID.Text;
07:
cmd.Parameters["@Name"].Value=TBName.Text;
08:
cmd.Parameters["@Sex"].Value=RBsex.SelectedItem.Text;
09:
cmd.Parameters["@Address"].Value=TBAddress.Text;cmd.Parameters
["@Born"].Value=TBBorn.Text;
10:
cmd.ExecuteNonQuery();
11:
conn.Close();binddata();init();}
12:
protectedvoidinit(){
13:
TBpkID.Text="";TBpkID.Focus();TBName.Text="";
14:
RBsex.SelectedIndex=-1;TBAddress.Text="";TBBorn.Text="";}
11.编辑“查询”按钮处理方法
01:
protectedvoidButton3_Click(objectsender,EventArgse){
02:
conn=newSqlConnection(StrConnection);conn.Open();
03:
Stringid=TBpkID1.Text;Stringsql="select*fromPeoplewhere
pkID="+id;
04:
SqlDataAdaptermyda=newSqlDataAdapter(sql,conn);
05:
DataSetds=newDataSet();myda.Fill(ds,"People");
06:
GridView2.DataSource=ds.Tables["People"].DefaultView;
07:
GridView2.DataBind();conn.Close();}
12.保存、编译、执行