您的位置:首页 > 其它

关于ADO.NET的一道考试题

2009-11-28 21:33 381 查看
一、数据库
提供数据库db_Shop,其中有两张表:一是商品类别表T_GoodsType;二是商品信息表T_GoodsInfo,两张表的结构为:

T_GoodsType:

字段名称

类型
备注
TypeID
Int
主键,类别id
TypeName
Varchar(50)
类别名称
T_ GoodsInfo:

字段名称

类型
备注
GoodsID
Int
主键,商品id
TypeID
Int
商品类别id
GoodsName
Varchar(50)
商品名称
GoodsPrice
Float
商品价格
二、需要实现的功能
1、 添加商品(15分)
2、 使用GridView显示所有商品列表(15分)
3、 可以按商品类别显示商品列表(15分)
4、 修改商品单价(15分)
5、 删除一件商品(10分)

三、考试要求:
1、 对页面样式无要求;
2、 封装数据库访问类(10分)
3、 其中【修改商品单价】要求使用存储过程实现;(10分)
4、 良好的编码规范,包括:命名、注释等;(10分)

四、功能截图
显示所有商品:







[b]












前台代码:
<body>
<form id="form1" runat="server">
<div>
<span style="color: Blue; font-size:x-large">显示所有商品:</span><br />
商品类别:<asp:DropDownList ID="ddl_GoodsType" runat="server">
</asp:DropDownList>
<asp:Button ID="bt_search" runat="server" Text="搜索" onclick="bt_search_Click" />
<asp:GridView ID="gv_GoodsInfo" runat="server" AutoGenerateColumns="false"
DataKeyNames="GoodsID" onrowcancelingedit="gv_GoodsInfo_RowCancelingEdit"
onrowcommand="gv_GoodsInfo_RowCommand" onrowediting="gv_GoodsInfo_RowEditing"
onrowupdating="gv_GoodsInfo_RowUpdating">
<Columns>
<asp:BoundField DataField="TypeName" HeaderText="商品类别" ReadOnly="true"/>
<asp:BoundField DataField="GoodsName" HeaderText="商品名称" ReadOnly="true"/>
<asp:BoundField DataField="GoodsPrice" HeaderText="商品价格" />
<asp:CommandField ShowEditButton="True" HeaderText="编辑" />
<asp:TemplateField HeaderText="删除">
<ItemTemplate>
<asp:Button ID="Button1" runat="server" Text="删除" CommandName="Del" CommandArgument='<%#Eval("GoodsID") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
</body>
添加商品页面前台:
<body>
<form id="form1" runat="server">
<div style="background-color:ActiveBorder">
<span style="color:Blue; font-size:x-large">添加商品:</span><br />
商品类别:<asp:DropDownList ID="ddl_GoodsType" runat="server">
</asp:DropDownList><br />
商品名称:<asp:TextBox ID="tb_goodsname" runat="server"></asp:TextBox><br />
商品价格:<asp:TextBox ID="tb_goodsprice" runat="server"></asp:TextBox><br />
<asp:Button ID="bt_Add" runat="server" Text="添加" onclick="bt_Add_Click" />
</div>
</form>
<p>
 </p>
</body>

后台代码:

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
SqlHelper helper = new SqlHelper();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
bindlist();
}
}

/// <summary>
/// 将商品类别绑定下拉菜单
/// </summary>
protected void bind()
{
string str = "select * from T_GoodsType";
DataTable dt = null;
dt = helper.ExecuteReturnTable(str, null, CommandType.Text);
ListItem item = new ListItem("全部类型", "0");
ddl_GoodsType.Items.Insert(0, item);
ddl_GoodsType.DataSource = dt;
ddl_GoodsType.DataTextField = "TypeName";
ddl_GoodsType.DataValueField = "TypeID";
ddl_GoodsType.DataBind();
}

/// <summary>
/// 根据商品类别绑定数据
/// </summary>
protected void bindlist()
{
int TypeID = int.Parse(ddl_GoodsType.SelectedValue);
string str = "select * from T_GoodsInfo,T_GoodsType where T_GoodsInfo.TypeID=T_GoodsType.TypeID";
if (TypeID != 0)
{
str += " and T_GoodsType.TypeID=" + TypeID;
}
DataTable dt = helper.ExecuteReturnTable(str, null, CommandType.Text);
gv_GoodsInfo.DataSource = dt;
gv_GoodsInfo.DataBind();
}

/// <summary>
/// 按商品类别进行搜索
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void bt_search_Click(object sender, EventArgs e)
{
bindlist();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gv_GoodsInfo_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Del")
{
int GoodsID = int.Parse(e.CommandArgument.ToString());
string str = "delete from T_GoodsInfo where GoodsID=" + GoodsID;
int result = -1;
result = helper.ExecuteReturnInt(str,null,CommandType.Text);
if (result > 0)
{
Response.Write("<script>alert('删除成功')</script>");
}
else
{
Response.Write("<script>alert('删除失败')</script>");
}
bindlist();
}
}
/// <summary>
/// 更新
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gv_GoodsInfo_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//string str = "update T_GoodsInfo set GoodsPrice=@GoodsPrice where GoodsID=@GoodsID";

//使用存储过程
string str = "proc_changeprice";

//存储过程的参数
SqlParameter[] para = {
new SqlParameter("@GoodsPrice",SqlDbType.Float),
new SqlParameter("@GoodsID",SqlDbType.Int)
};
para[0].Value=((TextBox)(gv_GoodsInfo.Rows[e.RowIndex].Cells[2].Controls[0])).Text;
para[1].Value = int.Parse(gv_GoodsInfo.DataKeys[e.RowIndex].Value.ToString());
int result = -1;
result = helper.ExecuteReturnInt(str, para, CommandType.StoredProcedure);
if (result > 0)
{
Response.Write("<script>alert('更新成功')</script>");
}
else
{
Response.Write("<script>alert('更新失败')</script>");
}
bindlist();
}
/// <summary>
/// 取消编辑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gv_GoodsInfo_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gv_GoodsInfo.EditIndex = -1;
bindlist();
}
/// <summary>
/// 编辑
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gv_GoodsInfo_RowEditing(object sender, GridViewEditEventArgs e)
{
gv_GoodsInfo.EditIndex = e.NewEditIndex;
bindlist();
}
}

添加页面的后台:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class AddGoods : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
}
}

/// <summary>
/// 将商品类别绑定下拉菜单
/// </summary>
protected void bind()
{
string str = "select * from T_GoodsType";
SqlHelper helper = new SqlHelper();
DataTable dt = null;
dt = helper.ExecuteReturnTable(str, null, CommandType.Text);
ListItem item = new ListItem("全部类型", "0");
ddl_GoodsType.Items.Insert(0, item);
ddl_GoodsType.DataSource = dt;
ddl_GoodsType.DataTextField = "TypeName";
ddl_GoodsType.DataValueField = "TypeID";
ddl_GoodsType.DataBind();
}

protected void bt_Add_Click(object sender, EventArgs e)
{
string name = tb_goodsname.Text.Trim();
string price = tb_goodsprice.Text.Trim();
string str = "insert into T_GoodsInfo(TypeID,GoodsName,GoodsPrice) values(@TypeID,@GoodsName,@GoodsPrice)";
SqlParameter[] para = {
new SqlParameter("@TypeID",SqlDbType.NVarChar),
new SqlParameter("@GoodsName",SqlDbType.VarChar),
new SqlParameter("@GoodsPrice",SqlDbType.Float)};
para[0].Value = int.Parse(ddl_GoodsType.SelectedValue);
para[1].Value = name;
para[2].Value = price;
SqlHelper helper = new SqlHelper();
int result = helper.ExecuteReturnInt(str,para,CommandType.Text);
if (result > 0)
{
Response.Write("<script>alert('添加成功');</script>");
}
else
{
Response.Write("<script>alert('添加失败');</script>");
}
}
}

[/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: