public static void DataBindToDataGrid(DataGrid dg,  string sqlstr,System.Web.HttpRequest req ,System.Web.HttpResponse res)
        {
            AccessDataSource ads = DB.ConnectionToData(req,res);
            ads.SelectCommand = sqlstr;            dg.DataSource = ads;
            dg.DataBind();
      
        }        public static void DataBindToDataGrid(DataGrid dg, String sqlstr, string TableName,System.Web.HttpRequest req ,System.Web.HttpResponse res)
        {
            DataSet ds = new DataSet();
            OleDbDataAdapter dbada = new OleDbDataAdapter();
            OleDbCommand odc = DB.CreateOleDbCommand(req,res);
            odc.CommandText = sqlstr;
            dbada.SelectCommand = odc;
            dbada.Fill(ds, TableName);            dg.DataSource = ds.Tables[TableName].DefaultView;
            dg.DataBind();
            odc.Connection.Close();        }
-------------------
上面的公共的函数我在下面的 页面文件里调用----------
private void bindDropDownList()
    {
        
            publicFunction.DataBindToDropDownList(this.ddlAtName, "select * from ArtType", "atName", "atID",
                this.Request, this.Response);            //publicFunction.DataBindToDataGrid(this.DataGrid1, "select * from artTypeDetail", "artTypeDetail", this.Request, this.Response);            publicFunction.DataBindToDataGrid(this.DataGrid1, "select * from artTypeDetail", "artTypeDetail", this.Request, this.Response);
            publicFunction.DataBindToDataGrid(this.DataGrid1, "select * from artTypeDetail", this.Request, this.Response); // 这里试用着两个来绑定,但还是不行
    }
   
         
    private void AddData()
    {
        OleDbConnection con = DB.CreateConnection(this.Request);
        OleDbCommand odc = new OleDbCommand();
        
        odc.Connection = con;
        
        
        String ss = "insert into ArtTypeDetail(atdID,atid,atName,atdName,atdDesc)values(";
        ss = ss + "@atdID,@atid,@atName,@atdName,@atdDesc)";        odc.CommandText = ss;
        odc.CommandType = CommandType.Text;        odc.Parameters.Add(new OleDbParameter("@atdID",OleDbType.Char,10));
        odc.Parameters["@atdID"].Value = this.tbAtdID.Text.Trim();        odc.Parameters.Add(new OleDbParameter("@atid",OleDbType.Char,10));
        odc.Parameters["@atid"].Value = this.ddlAtName.SelectedValue.ToString();        odc.Parameters.Add(new OleDbParameter("@atName",OleDbType.Char,20));
        odc.Parameters["@atName"].Value = this.ddlAtName.SelectedItem.ToString();        odc.Parameters.Add(new OleDbParameter("@atdName",OleDbType.Char,20));
        odc.Parameters["@atdName"].Value = this.tbAtdName.Text.Trim();        odc.Parameters.Add(new OleDbParameter("@atdDesc",OleDbType.Char,50));
        odc.Parameters["@atdDesc"].Value = this.tbAtdDesc.Text.Trim();
        
        
        DB.ExecSQL(odc, this.Request, this.Response, this.Session);
        
            }
    //  这里是新增
    protected void btnNew_Click(object sender, EventArgs e)
    {
        this.AddData();
        this.bindDropDownList();
        
        
    }
不管是新增还是修改都不能马上刷新过来

解决方案 »

  1.   

    在datagrid 的 事件里 我还写有代码
    ---------------------
    protected void DataGrid1_CancelCommand(object source, DataGridCommandEventArgs e)
        {
            this.DataGrid1.EditItemIndex = -1;
            this.bindDropDownList();
        }
        protected void DataGrid1_DeleteCommand(object source, DataGridCommandEventArgs e)
        {
            if (( e.Item.ItemType == ListItemType.AlternatingItem)
                || (e.Item.ItemType == ListItemType.Item))
            {
                String atdID = e.Item.Cells[0].Text.ToString().Trim();
                String ss = "select count(*) from Article where AtdID = '" + atdID + "'";
                OleDbCommand odc = DB.CreateOleDbCommand(this.Request, this.Response);
                odc.CommandText = ss;
                int count = (int)odc.ExecuteScalar();
                if (count >= 1)
                {
                    publicFunction.ShowMessage("已存在该类别的文章,不能删除", this.Response);
                    odc.Connection.Close();
                    return;
                }
                else
                {
                    ss = "delete * from artTypeDetail where atdID = '" + atdID + "'";
                    DB.ExecSQL(ss, this.Request, this.Response, this.Session);
                    odc.Connection.Close();
                    this.bindDropDownList();
                }        }
        }
        protected void DataGrid1_EditCommand(object source, DataGridCommandEventArgs e)
        {
            if ((e.Item.ItemType == ListItemType.AlternatingItem)
                || (e.Item.ItemType == ListItemType.Item))
            {
                this.DataGrid1.EditItemIndex = e.Item.ItemIndex;
                this.bindDropDownList();            
            
            }
        }
        protected void DataGrid1_UpdateCommand(object source, DataGridCommandEventArgs e)
        {
            //if (e.Item.ItemType == ListItemType.EditItem)
            {
                String atdID = e.Item.Cells[0].Text.ToString().Trim();
                String ss = "update artTypeDetail set atdName=@atdName,atID= @atID,atName=@atName,atdDesc = @atdDesc";
                ss = ss + " where atdID = @atdID";            OleDbCommand odc = DB.CreateOleDbCommand(this.Request, this.Response);
                odc.CommandText = ss;            odc.Parameters.Add(new OleDbParameter("@atdName", OleDbType.Char, 20));
                String atdName = ((TextBox)e.Item.Cells[1].Controls[0]).Text.ToString().Trim();
                odc.Parameters["@atdName"].Value = atdName;            odc.Parameters.Add(new OleDbParameter("@atid", OleDbType.Char, 10));
                DropDownList ddl = ((DropDownList)e.Item.FindControl("ddlAtType"));
                odc.Parameters["@atID"].Value = ddl.SelectedValue.ToString().Trim();
                
                odc.Parameters.Add(new OleDbParameter("@atName", OleDbType.Char, 20));
                odc.Parameters["@atName"].Value = ddl.SelectedItem.ToString().Trim();            odc.Parameters.Add(new OleDbParameter("@atdDesc", OleDbType.Char, 50));
                String atdDesc = ((TextBox)e.Item.Cells[3].Controls[0]).Text.ToString().Trim();
                odc.Parameters["@atdDesc"].Value = atdDesc;
                
                odc.Parameters.Add(new OleDbParameter("@atdID", OleDbType.Char, 10));            odc.Parameters["@atdID"].Value = atdID;
         
                DB.ExecSQL(odc, this.Request, this.Response, this.Session);
                //this.DataGrid1.EditItemIndex = -1;
                this.bindDropDownList();
                string s = this.Request.RawUrl;
                this.Response.Redirect(s, true);
                this.Response.End();
            }
        }    protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
        {
            
            if (e.Item.ItemType == ListItemType.EditItem)
            {
                DropDownList ddl = ((DropDownList)e.Item.FindControl("ddlAtType"));
                publicFunction.DataBindToDropDownList(ddl, "select * from artType", "artType",
                    this.Request, "atName", "atID");            Label l = ((Label)e.Item.FindControl("lAtID"));            String ss1 = l.Text.Trim();            foreach (ListItem li in ddl.Items)
                {
                    if (li.Text.Trim() == ss1)
                    {
                        li.Selected = true;
                        break;
                    }
                }                        for (int i = 0; i < e.Item.Cells.Count; i++)
                {
                    if (! e.Item.Cells[i].HasControls()) 
                        continue;
                    if (e.Item.Cells[i].Controls[0].GetType() == typeof(DropDownList))
                        continue;
                    try
                    {                    TextBox tb = ((TextBox)e.Item.Cells[i].Controls[0]);
                    }
                    catch(Exception eee)
                    {
                        continue;
                    }
                    String ss = ((TextBox)e.Item.Cells[i].Controls[0]).Text.Trim();
                    ((TextBox)e.Item.Cells[i].Controls[0]).Text = ss;
                }
            }
            if ((e.Item.ItemType == ListItemType.AlternatingItem)
                ||(e.Item.ItemType == ListItemType.Item))
            {
                String ss1 = e.Item.Cells[0].Text.Trim();
                LinkButton lb = ((LinkButton)e.Item.Cells[5].Controls[0]);
                lb.Attributes.Add("onclick", "return confirm('确定要删除编号为:" + ss1 + "的记录吗?')");
            }
        }
    谢谢大家