信息管理实验7-使用GridView实现查看详细信息,修改,删除数据
首先创建好一个数据库&表
CREATE DATABASE MedicineDB;
USE MedicineDB;
CREATE TABLE Medicine(
[ID] bigint,
[Name] varchar(50),
[Price] bigint,
[Type] varchar(50),
[Intro] text,
primary key(ID)
)
首先创建好一个数据库&表
CREATE DATABASE MedicineDB; USE MedicineDB; CREATE TABLE Medicine( [ID] bigint, [Name] varchar(50), [Price] bigint, [Type] varchar(50), [Intro] text, primary key(ID) ); USE MedicineDB; INSERT INTO Medicine VALUES (1,'板蓝根','9','冲剂','清热解毒'); INSERT INTO Medicine VALUES (2,'999感冒颗粒','10','冲剂','感冒');
新建一个DB类
using System; using System.Data; using System.Configuration; 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; using System.Data.SqlClient; /// <summary> /// DB 的摘要说明 /// </summary> public class DB { public DB() { } //创建数据库连接 public static SqlConnection createCon(){ return new SqlConnection("server=.\\sqlexpress;database=MedicineDB;uid=sa;pwd=123;"); } //将数据绑定到GridView public static void gvDataBind(GridView gv,string sql){ SqlConnection conn = DB.createCon(); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); sda.Fill(ds); gv.DataSource = ds; gv.DataBind(); conn.Close(); } //执行SQL语句 public static void executeCmd(string sql) { SqlConnection conn = DB.createCon(); conn.Open(); SqlCommand cmd = new SqlCommand(sql,conn); cmd.ExecuteNonQuery(); conn.Close(); } }
界面设计
拉进一个GridView,在编辑列绑定数据(如图)并添加一个HyperLinkField(“详细”链接)和一个CommandField(“删除”链接),另外把GridView属性AutoGenerateColumns设为False
Default.aspx最终代码如下
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!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 runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound" OnRowDeleting="GridView1_RowDeleting"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" /> <asp:BoundField DataField="Name" HeaderText="药品名" /> <asp:BoundField DataField="Price" HeaderText="价格" /> <asp:HyperLinkField DataNavigateUrlFields="ID" DataNavigateUrlFormatString="Show.aspx?id={0}" Text="详细" /> <asp:CommandField ShowDeleteButton="True" /> </Columns> </asp:GridView> </div> </form> </body> </html>
Default.aspx.cs 代码
using System; using System.Data; using System.Configuration; 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 _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) bind(); } public void bind() { string sql = "select * from Medicine"; GridView1.DataKeyNames = new string[]{"ID"}; DB.gvDataBind(GridView1, sql); } //记得绑定删除事件 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e){ string sql = "delete from Medicine where ID = " + GridView1.DataKeys[e.RowIndex].Value; DB.executeCmd(sql); Response.Redirect("Default.aspx"); } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { ((LinkButton)(e.Row.Cells[4].Controls[0])).Attributes.Add("onclick", "return confirm('确定要删除吗?')"); } } }
注意:绑定UI的事件和代码关联,确保这里的参数和代码中的方法一致。
新建一个页面Show.aspx
Show.aspx代码如下
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Show.aspx.cs" Inherits="Show" %> <!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 runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <div> ID<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <br /> 药品名<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> <br /> 价格<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> <br /> 类型<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox><br /> 详细介绍 <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox><br /> <br /> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="保存" /></div> </form> </body> </html>
Show.aspx.cs代码
using System; using System.Data; 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; using System.Data.SqlClient; public partial class Show : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string id = Request.QueryString["id"].ToString(); string sql = "select * from Medicine where ID = " + id; SqlConnection conn = DB.createCon(); SqlDataAdapter sda = new SqlDataAdapter(sql,conn); DataSet ds = new DataSet(); sda.Fill(ds,"Medicine"); DataRowView drv = ds.Tables["Medicine"].DefaultView[0]; TextBox1.Text = Convert.ToString(drv.Row["ID"]); TextBox2.Text = Convert.ToString(drv.Row["Name"]); TextBox3.Text = Convert.ToString(drv.Row["Price"]); TextBox4.Text = Convert.ToString(drv.Row["Type"]); TextBox5.Text = Convert.ToString(drv.Row["Intro"]); } } protected void Button1_Click(object sender, EventArgs e) { string id = Request.QueryString["id"].ToString(); string sql = "update Medicine set [ID] = " + TextBox1.Text.Trim() + ",[Name] = '" + TextBox2.Text.Trim() +"',[Price] = "+TextBox3.Text.Trim()+",[Type] = '"+TextBox4.Text.Trim()+"',[Intro] = '" + TextBox5.Text.Trim() + "' where ID = " + id; DB.executeCmd(sql); Response.Redirect("Default.aspx"); } }
就这样完成了~原创文章,转载请保留出处(fatkun.com)