4.2.4 通过ADO.NET访问数据库 ASP.NET通过ADO.NET访问数据库。ADO.NET是ADO的改进版本。ADO.NET的两个核心组件是.NET Framework数据提供程序和DataSet。 http://www.paper51.com ADO.NET Framework数据提供程序,是一组包括Connection、Command、DataReader和DataAdapter对象在内的组件,其组件的设计目的相当明确:为了实现数据操作和对数据的快速、只进、只读访问。Connection对象提供与数据源的连接。Command对象使您能够访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。DataReader从数据源中提供高性能的数据流。最后,DataAdapter提供连接DataSet对象和数据源的桥梁。DataAdapter使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,并使对DataSet中数据的更改与数据源保持一致。 内容来自www.paper51.com ADO.NET DataSet是ADO.NET的断开式结构的核心组件。DataSet的设计目的很明确:为了实现独立于任何数据源的数据访问。因此,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据。DataSet包含一个或多个DataTable对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关DataTable对象中数据的关系信息组成。 内容来自www.paper51.com 从ASP.NET访问SQL数据库的步骤: paper51.com (1)使用SqlConnection类创建一个数据库连接。 http://www.paper51.com 在Web.config文件中写入如下代码: 内容来自www.paper51.com 内容来自论文无忧网 www.paper51.com <connectionStrings> 内容来自论文无忧网 www.paper51.com <addname="ConnectionString"connectionString="DataSource=MY-TOMATO;InitialCatalog=hotelbook;UserID=sa;Password=5858" providerName="System.Data.SqlClient"/> 内容来自www.paper51.com
</connectionStrings> copyright paper51.com 在具体功能模块实现时使用SqlConnection类创建一个数据库连接 paper51.com
paper51.com
public void Search_Click(Object sender,EventArgs E) http://www.paper51.com {//连接到本地计算机的hotelbook数据库 内容来自论文无忧网 www.paper51.com Stringconntext=(ConfigurationManager.ConnectionStrings["ConnectionString"]).ToString(); paper51.com SqlConnection conn = new SqlConnection(conntext); 内容来自论文无忧网 www.paper51.com
//打开数据库的连接 copyright paper51.com
conn.Open(); 内容来自论文无忧网 www.paper51.com //关闭数据库的连接 内容来自论文无忧网 www.paper51.com conn.Close();} 内容来自www.paper51.com
(2)本程序使用了如下方法获取数据结果 内容来自论文无忧网 www.paper51.com 使用SqlDataAdapter类从数据库中选择一组记录。再使用SqlDataAdapter类填充新的DataSet。最后将服务器控件GridView绑定到DataSet。 内容来自www.paper51.com
内容来自www.paper51.com public void BindGrid() copyright paper51.com
{string strSQL; copyright paper51.com //创建DataAdapter对象DA,选择数据库中的所有信息 内容来自论文无忧网 www.paper51.com strSQL="select*from预订单where客房编号='"+TextBox1.Text+"'"; copyright paper51.com
SqlDataAdapter DA = new SqlDataAdapter(strSQL,conn); copyright paper51.com //创建并填充DataSet http://www.paper51.com
DataSet ds = new DataSet("ds"); 内容来自www.paper51.com DA.Fill(ds); paper51.com //绑定到GridView控件 内容来自www.paper51.com
GridView1.DataSource = ds; paper51.com GridView1.DataBind();} paper51.com (3)使用GridView控件以表格形式显示数据项的内容,它支持数据项的选择、排序、分页和修改。 paper51.com //可以自行控制数据表格中列的表现形式和布局 内容来自论文无忧网 www.paper51.com //<Columns>和</Columns>标记之间定义了要包含和定义的列,HeaderText属性设置显示在列表头中的文本,DataField属性设置列对应的数据源字段。 copyright paper51.com //BoundField将数据源中的一个字段绑定到数据表格的一个列中 http://www.paper51.com (4)本程序使用如下语句实现对数据库的插入(insert),删除(delete),更新(update) 内容来自www.paper51.com
copyright paper51.com strSQL="insert into客房类型(类型编号,类型名称,客房价格,数量)values('"+TextBox1.Text+"','"+TextBox2.Text+"','"+Convert.ToDouble(TextBox3.Text)+"','"+Convert.ToInt32(TextBox4.Text)+"')"; 内容来自论文无忧网 www.paper51.com SqlCommand comm=new SqlCommand(strSQL,conn); paper51.com comm.ExecuteNonQuery(); http://www.paper51.com 4.3 系统功能模块设计4.3.1 客房预定功能 内容来自论文无忧网 www.paper51.com 1、功能描述: paper51.com
主要用于客人预订客房时查询客房的详细信息。选择“客房类型”,单击“搜索”按钮,即可查询酒店全部客房的状态信息;也可点击“查询可预订房间”查看酒店所有空房信息。 内容来自www.paper51.com 客人预订客房时完成预订资料的录入,包括输入预订人姓名,联系电话,信用卡号,预订客房的编号,入住时间,离店时间,备注,选择预订客房类型,单击“预订”按钮,即可完成客房的预订。 copyright paper51.com 2、设计后运行的界面如下所示: copyright paper51.com http://www.paper51.com 图4-9 客房查询界面 http://www.paper51.com
paper51.com 图4-10客房预订界面 copyright paper51.com
3、编写代码: paper51.com
内容来自www.paper51.com ProtectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse) paper51.com { http://www.paper51.com int i; 内容来自www.paper51.com //执行循环,保证每条数据都可以更新 内容来自论文无忧网 www.paper51.com for(i=0;i<GridView1.Rows.Count;i++) copyright paper51.com { http://www.paper51.com //首先判断是否是数据行 paper51.com if(e.Row.RowType == DataControlRowType.DataRow) copyright paper51.com { copyright paper51.com //当鼠标停留时更改背景色 http://www.paper51.com e.Row.Attributes.Add("onmouseover","c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'"); 内容来自www.paper51.com //当鼠标移开时还原背景色 paper51.com e.Row.Attributes.Add("onmouseout","this.style.backgroundColor=c"); 内容来自论文无忧网 www.paper51.com }}}} paper51.com 4.3.2 客房管理功能 内容来自www.paper51.com 功能描述: 内容来自论文无忧网 www.paper51.com 这一功能实现酒店管理员对酒店客房的类型设置和客房信息设置。这些设置一般不轻易改动。“客房信息设置”用于设置客房的初始信息,内容包括客房编号,类型编号,楼层编号,额定人数,床数,备注,状态,客房价格等;“客房类型设置”用于设置本酒店客房的分类信息,内容包括类型编号,类型名称,客房价格,数量等。 http://www.paper51.com 4.3.3 预定管理功能 内容来自www.paper51.com
1、功能描述: copyright paper51.com 用于客人预订客房后查询自己的订单信息,并可完成订单的修改和取消。客人输入客房编号,单击“查询”按钮,即可查看订单详细信息,进行修改和取消。 copyright paper51.com
2、编写代码: paper51.com
paper51.com
//绑定 paper51.com public void bind() 内容来自论文无忧网 www.paper51.com
{string strsql="select*from预订单where客房编号='"+TextBox1.Text+"'"; 内容来自论文无忧网 www.paper51.com ……} paper51.com Protected void GridView1_RowDataBound(object sender,GridViewRowEventArgs e) 内容来自论文无忧网 www.paper51.com {//如果是绑定数据行 paper51.com
if(e.Row.RowType==DataControlRowType.DataRow) paper51.com {if(e.Row.RowState==DataControlRowState.Normal||e.Row.RowState==DataControlRowState.Alternate) 内容来自论文无忧网 www.paper51.com
{ copyright paper51.com ((LinkButton)e.Row.Cells[11].Controls[0]).Attributes.Add("onclick","javascript:return confirm('你确认要删除:\""+e.Row.Cells[0].Text+"\"吗?')"); 内容来自论文无忧网 www.paper51.com }}}} http://www.paper51.com |