我的datagrid为何不能编辑? ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vbcon/html/vbwlkWalkthroughUsingDataGridWebControlToReadWriteData.htm 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 回复人: nameldw(安安)我的登陆不了,气死了 public class WebForm1 : System.Web.UI.Page { protected System.Web.UI.WebControls.Button btnAddPet; protected System.Web.UI.WebControls.DataGrid datagrid; private void Page_Load(object sender, System.EventArgs e) { if (!IsPostBack) { ReadRecords(); } } private void ReadRecords() // 从数据库中读取数据 { OleDbConnection conn = null; OleDbDataReader reader = null; try { conn = new OleDbConnection( @"Provider=Microsoft.Jet.OLEDB.4.0; " + @"Data Source=" + Server.MapPath("Pets/Pets.mdb")); conn.Open(); OleDbCommand cmd = new OleDbCommand("Select * FROM PetTable", conn); reader = cmd.ExecuteReader(); datagrid.DataSource = reader; datagrid.DataBind(); }// catch (Exception e)// {// Response.Write(e.Message);// Response.End();// } finally { if (reader != null) reader.Close(); if (conn != null) conn.Close(); } } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); base.OnInit(e); } /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.btnAddPet.Click += new System.EventHandler(this.btnAddPet_Click); this.datagrid.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.datagrid_CancelCommand); this.datagrid.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.datagrid_EditCommand); this.datagrid.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.datagrid_UpdateCommand); this.datagrid.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.datagrid_DeleteCommand); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void ExecuteNonQuery(string sql) //定义执行sql语句的方法 { OleDbConnection conn = null; try { conn = new OleDbConnection( @"Provider=Microsoft.Jet.OLEDB.4.0; " + @"Data Source=" + Server.MapPath("Pets/Pets.mdb")); conn.Open(); OleDbCommand cmd = new OleDbCommand(sql, conn); cmd.ExecuteNonQuery(); } finally { if (conn != null) conn.Close(); } } //取消按钮 private void datagrid_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { datagrid.EditItemIndex = -1; ReadRecords(); } //编辑 private void datagrid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { datagrid.EditItemIndex = e.Item.ItemIndex; ReadRecords(); } //删除 private void datagrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { int ID = (int) datagrid.DataKeys[(int) e.Item.ItemIndex]; string sql = "DELETE FROM PetTable WHERE ID=" + ID; ExecuteNonQuery(sql); ReadRecords(); } //更新 private void datagrid_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { int ID = (int) datagrid.DataKeys[(int) e.Item.ItemIndex]; string name = ((TextBox)e.Item.Cells[1].Controls[0]).Text; string type = ((TextBox)e.Item.Cells[2].Controls[0]).Text; string sql = "UPDATE PetTable SET PetName=\"" + name + "\", PetType=\"" + type + "\"" + " WHERE ID=" + ID; ExecuteNonQuery(sql); datagrid.EditItemIndex = -1; ReadRecords(); }慢慢看吧,很简单的, installshield 打包安装程序附加数据库 求助:删除远程计算机上文件夹 如何将RSS里的内容下载下来? 如何获取一段字符串中的数字部分? datalist 分面显示时如果对其中的用户控件传值? c#.NET 开发BHO插件,FileDownload事件如何响应?怎样能够阻止对应的下载对话框的出现,使得IE能够继续导航 关于Forms验证的问题? 有没有办法修改MessageBox里的字体? 用Graphics 对象画饼图遇到的问题,在线等待,解决即给分! 请问如何用C#写屏保程序 高手请进:画一个函数y=(x*x+2*x+1)的图形 再看一段代码?
{
protected System.Web.UI.WebControls.Button btnAddPet;
protected System.Web.UI.WebControls.DataGrid datagrid;
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{ ReadRecords();
}
} private void ReadRecords() // 从数据库中读取数据
{
OleDbConnection conn = null;
OleDbDataReader reader = null;
try
{
conn = new OleDbConnection(
@"Provider=Microsoft.Jet.OLEDB.4.0; " +
@"Data Source=" + Server.MapPath("Pets/Pets.mdb"));
conn.Open(); OleDbCommand cmd =
new OleDbCommand("Select * FROM PetTable", conn);
reader = cmd.ExecuteReader(); datagrid.DataSource = reader;
datagrid.DataBind();
}
// catch (Exception e)
// {
// Response.Write(e.Message);
// Response.End();
// }
finally
{
if (reader != null) reader.Close();
if (conn != null) conn.Close();
}
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btnAddPet.Click += new System.EventHandler(this.btnAddPet_Click);
this.datagrid.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.datagrid_CancelCommand);
this.datagrid.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.datagrid_EditCommand);
this.datagrid.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.datagrid_UpdateCommand);
this.datagrid.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.datagrid_DeleteCommand);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
private void ExecuteNonQuery(string sql) //定义执行sql语句的方法
{
OleDbConnection conn = null;
try
{
conn = new OleDbConnection(
@"Provider=Microsoft.Jet.OLEDB.4.0; " +
@"Data Source=" + Server.MapPath("Pets/Pets.mdb"));
conn.Open(); OleDbCommand cmd =
new OleDbCommand(sql, conn);
cmd.ExecuteNonQuery();
} finally
{
if (conn != null) conn.Close();
}
} //取消按钮
private void datagrid_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
datagrid.EditItemIndex = -1;
ReadRecords();
}
//编辑
private void datagrid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
datagrid.EditItemIndex = e.Item.ItemIndex;
ReadRecords();
}
//删除
private void datagrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
int ID = (int) datagrid.DataKeys[(int) e.Item.ItemIndex]; string sql = "DELETE FROM PetTable WHERE ID=" + ID;
ExecuteNonQuery(sql);
ReadRecords();
}
//更新
private void datagrid_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
int ID = (int) datagrid.DataKeys[(int) e.Item.ItemIndex]; string name = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
string type = ((TextBox)e.Item.Cells[2].Controls[0]).Text; string sql =
"UPDATE PetTable SET PetName=\"" + name +
"\", PetType=\"" + type + "\"" +
" WHERE ID=" + ID;
ExecuteNonQuery(sql); datagrid.EditItemIndex = -1;
ReadRecords();
}
慢慢看吧,很简单的,