using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Data.OleDb; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls;namespace Haiwo { /// <summary> /// test 的摘要说明。 /// </summary> public class test : System.Web.UI.Page { public System.Web.UI.WebControls.DataGrid DataGrid1;
public DataBase database1=new DataBase(); //引用DataBase类
this.display(); } public void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { //编辑数据 DataGrid1.EditItemIndex=e.Item.ItemIndex; this.display(); } public void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e) {
} } }
看以下代码就行: 无论是删除还是更改都出错,取消好用 public void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { //删除数据 try { int CPI=DataGrid1.CurrentPageIndex; int EII=e.Item.ItemIndex; int row=CPI*10+EII; string query="delete from leave where leaveid=@id";
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace Haiwo
{
/// <summary>
/// test 的摘要说明。
/// </summary>
public class test : System.Web.UI.Page
{
public System.Web.UI.WebControls.DataGrid DataGrid1;
public DataBase database1=new DataBase(); //引用DataBase类
public void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(! IsPostBack)
{
this.display();
}
}
public void display()
{
try
{
string query="select * from leave";
DataGrid1.DataSource=database1.ReDataSet(query);
DataGrid1.DataBind(); }
catch(System.Data.OleDb.OleDbException err)
{
Response.Write("error is:"+err.Message);
}
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_CancelCommand);
this.DataGrid1.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_EditCommand);
this.DataGrid1.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_UpdateCommand);
this.DataGrid1.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_DeleteCommand);
this.DataGrid1.SelectedIndexChanged += new System.EventHandler(this.DataGrid1_SelectedIndexChanged);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion public void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ //删除数据
try
{
int CPI=DataGrid1.CurrentPageIndex;
int EII=e.Item.ItemIndex;
int row=CPI*10+EII;
string query="delete from leave where leaveid=@id";
//添加参数
database1.oleDbUpdateCommand1.Parameters.Add(new OleDbParameter("@id",OleDbType.Integer));
//设置@id参数的值
database1.oleDbUpdateCommand1.Parameters["@id"].Value=DataGrid1.DataKeys[EII];
string key =DataGrid1.DataKeys[EII].ToString();
DataGrid1.SelectedIndex=row;
database1.OperDB(query);
row-=1;
}
catch(Exception err)
{
Response.Write("err is:"+err.Message); } this.display();
}
public void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ //取消更新
DataGrid1.EditItemIndex=-1;
this.display();
} public void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ //更新数据
try
{
int CPI=DataGrid1.CurrentPageIndex;
int EII=e.Item.ItemIndex;
int row=CPI*10+EII;
string query="update leave set leavename=@name,leavecontent=@content,leavetime=@time where leaveid=@id";
//添加参数
database1.oleDbUpdateCommand1.Parameters.Add(new OleDbParameter("@id",OleDbType.Integer));
database1.oleDbUpdateCommand1.Parameters.Add(new OleDbParameter("@time",OleDbType.Date));
database1.oleDbUpdateCommand1.Parameters.Add(new OleDbParameter("@name",OleDbType.VarChar,10));
database1.oleDbUpdateCommand1.Parameters.Add(new OleDbParameter("@content",OleDbType.VarChar,1000));
//设置@id参数的值
database1.oleDbUpdateCommand1.Parameters["@id"].Value=DataGrid1.DataKeys[EII];
string key =DataGrid1.DataKeys[EII].ToString();
TextBox CurrentTextBox=new TextBox();
//设置@time参数的值
CurrentTextBox=(TextBox)e.Item.Cells[1].Controls[0];
database1.oleDbUpdateCommand1.Parameters[1].Value=CurrentTextBox.Text.ToString();
//设置@name参数的值
CurrentTextBox=(TextBox)e.Item.Cells[2].Controls[0];
database1.oleDbUpdateCommand1.Parameters[2].Value=CurrentTextBox.Text.ToString();
//设置@content参数的值
CurrentTextBox=(TextBox)e.Item.Cells[3].Controls[0];
database1.oleDbUpdateCommand1.Parameters[3].Value=CurrentTextBox.Text.ToString();
DataGrid1.SelectedIndex=row;
database1.OperDB(query);
}
catch(Exception err)
{
Response.Write("err is:"+err.Message); }
DataGrid1.EditItemIndex=-1;
this.display();
} public void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ //编辑数据
DataGrid1.EditItemIndex=e.Item.ItemIndex;
this.display();
}
public void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
{
}
}
}
无论是删除还是更改都出错,取消好用
public void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ //删除数据
try
{
int CPI=DataGrid1.CurrentPageIndex;
int EII=e.Item.ItemIndex;
int row=CPI*10+EII;
string query="delete from leave where leaveid=@id";
//添加参数
database1.oleDbUpdateCommand1.Parameters.Add(new OleDbParameter("@id",OleDbType.Integer));
//设置@id参数的值
database1.oleDbUpdateCommand1.Parameters["@id"].Value=DataGrid1.DataKeys[EII];
string key =DataGrid1.DataKeys[EII].ToString();
DataGrid1.SelectedIndex=row;
database1.OperDB(query);
row-=1;
}
catch(Exception err)
{
Response.Write("err is:"+err.Message); } this.display();
}
public void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ //取消更新
DataGrid1.EditItemIndex=-1;
this.display();
} public void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ //更新数据
try
{
int CPI=DataGrid1.CurrentPageIndex;
int EII=e.Item.ItemIndex;
int row=CPI*10+EII;
string query="update leave set leavename=@name,leavecontent=@content,leavetime=@time where leaveid=@id";
//添加参数
database1.oleDbUpdateCommand1.Parameters.Add(new OleDbParameter("@id",OleDbType.Integer));
database1.oleDbUpdateCommand1.Parameters.Add(new OleDbParameter("@time",OleDbType.Date));
database1.oleDbUpdateCommand1.Parameters.Add(new OleDbParameter("@name",OleDbType.VarChar,10));
database1.oleDbUpdateCommand1.Parameters.Add(new OleDbParameter("@content",OleDbType.VarChar,1000));
//设置@id参数的值
database1.oleDbUpdateCommand1.Parameters["@id"].Value=DataGrid1.DataKeys[EII];
string key =DataGrid1.DataKeys[EII].ToString();
TextBox CurrentTextBox=new TextBox();
//设置@time参数的值
CurrentTextBox=(TextBox)e.Item.Cells[1].Controls[0];
database1.oleDbUpdateCommand1.Parameters[1].Value=CurrentTextBox.Text.ToString();
//设置@name参数的值
CurrentTextBox=(TextBox)e.Item.Cells[2].Controls[0];
database1.oleDbUpdateCommand1.Parameters[2].Value=CurrentTextBox.Text.ToString();
//设置@content参数的值
CurrentTextBox=(TextBox)e.Item.Cells[3].Controls[0];
database1.oleDbUpdateCommand1.Parameters[3].Value=CurrentTextBox.Text.ToString();
DataGrid1.SelectedIndex=row;
database1.OperDB(query);
}
catch(Exception err)
{
Response.Write("err is:"+err.Message); }
DataGrid1.EditItemIndex=-1;
this.display();
} public void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ //编辑数据
DataGrid1.EditItemIndex=e.Item.ItemIndex;
this.display();
}
int row=CPI*10+EII;
你的DG中得表得行数有CPI*10+EII这么多行吗?是行数错了,超过了。
database1.oleDbUpdateCommand1.Parameters["@id"].Value=DataGrid1.DataKeys[EII].ToString();