关于ADO.NET的一道考试题
2009-11-28 21:33
381 查看
一、数据库
提供数据库db_Shop,其中有两张表:一是商品类别表T_GoodsType;二是商品信息表T_GoodsInfo,两张表的结构为:
T_GoodsType:
T_ GoodsInfo:
二、需要实现的功能
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]
提供数据库db_Shop,其中有两张表:一是商品类别表T_GoodsType;二是商品信息表T_GoodsInfo,两张表的结构为:
T_GoodsType:
字段名称 | 类型 | 备注 |
TypeID | Int | 主键,类别id |
TypeName | Varchar(50) | 类别名称 |
字段名称 | 类型 | 备注 |
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]
相关文章推荐
- C#中一道关于ADO.NET的基础练习题
- 关于ADO.NET连接池
- 关于C# Ado.NET连接数据库操作基本实例模板
- 关于软件考试的一道C语言的解析
- 关于ADO.NET Entity Framework的信息
- 黑马程序员---关于对ADO.Net学习的总结
- 关于使用Entity Framework时遇到的问题 未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架提供程序。请确保在应用程序配置文件的“entityFramework”节中注册了该提供程序
- ADO.net 关于SqlParameter 遇到Like问题如何解决
- ADO.NET在C#中关于SQL操作的理解
- 关于ADO.NET,只须一个连接,一条SQL语句,轻松实现增删改查
- 关于ADO.Net连接池(Connection Pool)的一些个人见解
- 一些关于Asp.net的简答题。对于要考试的同学很有用哦。
- 黑马程序员—转载一篇关于ADO.NET的知识的博客
- 关于ADO.NET连接SQL一些方法
- 关于微软ADO.NET提供的组件库里的UpdateDataSet()的用法心得
- C#提高知识 ADO.NET实体数据模型(3)-关于回滚
- C#提高知识 ADO.NET实体数据模型(3)-关于回滚
- 70-561 Microsoft .NET Framework 3.5, ADO.NET Application Development 考试感言
- 关于SQL漏洞注入(Ado.Net)
- 关于VS2010“ADO.NET Entity Data Model模板丢失或者添加失败问题