ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vbcon/html/vbwlkWalkthroughUsingDataGridWebControlToReadWriteData.htm

解决方案 »

  1.   

    回复人: nameldw(安安)我的登陆不了,气死了
      

  2.   

    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();
    }
    慢慢看吧,很简单的,