C#中如何用DataGrid实现数据库中数据的添加、删除、修改?
注意:DataGrid中的数据与DB中的并不是一一对应,而是需要进行一些逻辑上的处理。
我现在只能用ListView来做,一行行取数据,然后显示,好麻烦。
问题点数:100、回复次数:4Top
1 楼LaoDai_Net(『老代』)回复于 2005-06-03 14:50:41 得分 49
http://dotnet.aspx.cc/ShowDetail.aspx?id=8ADE535F-AD40-4DE3-A962-A64B4FAF12C4Top
2 楼xiaoyao0945(磨磨)回复于 2005-06-03 14:51:50 得分 1
说清楚点啊 具体点Top
3 楼qingbo_hu(湖儿清清水)回复于 2005-06-03 14:54:26 得分 50
后台
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace WebEditTemPlate
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label ErrorMessage;
protected System.Web.UI.WebControls.DataGrid EventData;
protected System.Web.UI.WebControls.LinkButton LinkButton1;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!(IsPostBack))
{
EventData.DataSource=LoadMyCalendarData();
EventData.DataBind();
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.EventData.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DEDR_CANCEL);
this.EventData.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DEDR_EDIT);
this.EventData.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DEDR_UPDATE);
this.EventData.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DEDR_DELETE);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
protected void DEDR_EDIT(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
EventData.EditItemIndex=Convert.ToInt32(e.Item.ItemIndex);
EventData.DataSource=LoadMyCalendarData();
EventData.DataBind();
}
private void DEDR_UPDATE(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DataSet dataset=LoadMyCalendarData();
int row=Convert.ToInt32(e.Item.ItemIndex);
TextBox edittext=null;
edittext=(TextBox)e.Item.FindControl("txtShortDesc");
dataset.Tables[0].Rows[row]["ShortDesc"]=edittext.Text;
edittext=(TextBox)e.Item.FindControl("txtDetailDesc");
dataset.Tables[0].Rows[row]["DetailDesc"]=edittext.Text;
edittext=(TextBox)e.Item.FindControl("txtStatTime");
dataset.Tables[0].Rows[row]["Starttime"]=edittext.Text;
edittext=(TextBox)e.Item.FindControl("txtEventDate");
dataset.Tables[0].Rows[row]["EventDate"]=edittext.Text;
edittext=(TextBox)e.Item.FindControl("txtEndTime");
dataset.Tables[0].Rows[row]["EndTime"]=edittext.Text;
dataset.WriteXml(Server.MapPath("")+"//XML//MyCalendar.xml");
Session["MyCalendarData"]=null;
EventData.EditItemIndex=-1;
EventData.DataSource=LoadMyCalendarData();
EventData.DataBind();
}
private void DEDR_CANCEL(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
EventData.EditItemIndex=-1;
Session["MyCalendarData"]=null;
EventData.DataSource=LoadMyCalendarData();
EventData.DataBind();
}
private void DEDR_DELETE(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DataSet dataset=LoadMyCalendarData();
int row=Convert.ToInt32(e.Item.ItemIndex);
dataset.Tables[0].Rows[row].Delete();
dataset.WriteXml(Server.MapPath("")+"//XML//MyCalendar.xml");
Session["MyCalendarData"]=null;
EventData.EditItemIndex=-1;
EventData.DataSource=LoadMyCalendarData();
EventData.DataBind();
}
protected DataSet LoadMyCalendarData()
{
string sourceXml=Server.MapPath("")+"//XML//MyCalendar.xml";
if(!(File.Exists(sourceXml)))
return null;
DataSet cachDataSet=(DataSet)Session["MyCalendarData"];
if(!(cachDataSet==null))
return cachDataSet;
DataSet dataset=new DataSet();
try
{
dataset.ReadXml(sourceXml);
Session["MyCalendarData"]=dataset;
}
catch(Exception ex)
{
ErrorMessage.Text=ex.Message;
dataset=null;
}
return dataset;
}
protected void DEDR_ADD(object sender,System.EventArgs e)
{
DataSet dataset=LoadMyCalendarData();
DataRow newrow;
newrow=dataset.Tables[0].NewRow();
newrow["ShortDesc"]="";
newrow["DetailDesc"]="";
newrow["EventDate"]="";
newrow["StartTime"]="";
newrow["EndTime"]="";
dataset.Tables[0].Rows.Add(newrow);
dataset.WriteXml(Server.MapPath("")+"//XML//MyCalendar.xml");
Session["MyCalendarData"]=null;
EventData.DataSource=LoadMyCalendarData();
EventData.DataBind();
EventData.EditItemIndex=EventData.Items.Count-1;
EventData.DataSource=LoadMyCalendarData();
EventData.DataBind();
}
}
}
代码 ,自己看Top
4 楼zhoufeng_xu(痞子徐)回复于 2005-06-03 15:27:54 得分 0
(适合单表操作,没试过多表)在项目里添加组件,然后把SQLDATAADPTER 从工具栏拉进去。
然后设置,系统自动生成添加,删除等代码。
你只需要添加函数:
publid DataSet ***()
{
DataSet ds=new DataSet;
sqlDataAdapter1.Fill(ds);
return ds;
}
就能得到全部内容
pubilc void ***(dataset ds)
{
sqlDataAdapter1.Update(ds);
}
就能添加,删除,修改数据库了。
Top




