在分页状态下删除纪录的问题
?//檢索數據庫的函數
??public DataSet GetZcbd()
??{
???try
???{
????DataSet ds=new DataSet();???
????string searchString="select id,yy,bj from zc";
????da=new OleDbDataAdapter(searchString,conn);
????da.Fill(ds,"yy");????
????return ds;
???}
???catch
???{
????return null;????
???}??
???????????
??}
?//綁定DataGrid???
private void BindGrid()
??{
???DataSet ds = new DataSet();
???ds = us.GetZcbd();
???if (ds!=null)
???{
????this.DataGrid1.DataSource = ds;
????this.DataGrid1.DataBind();
???}
???else
???{
????msg.Alert("加載數據錯誤!",Page);
???}
??}
//刪除數據庫紀錄函數
??public string DeleteZcbd(int bdID)
??{
???int count = this.IfExiseZysx(bdID);//不必理會次句,默認count=1
???if (count <= 0) return "false";
???else
???{
????string sqlStr = "delete from zcwhere id="+bdID;
????OleDbCommand cmd = new OleDbCommand(sqlStr,conn);
????conn.Open();
????try
????{
?????cmd.ExecuteNonQuery();
?????return "true";
????}
????catch(Exception e)
????{
?????return e.Message.ToString();
????}
????finally
????{
?????conn.Close();
????}??????
???}
??}
//?DataGrid1_DeleteCommand事件修改函數??
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
??{
???int bdID = int.Parse(DataGrid1.DataKeys[(int)e.Item.ItemIndex].ToString());
???string isDel = us.DeleteZcbd(bdID);
???int CurrentPage = 0;
???if (isDel == "true")
???{
????if(this.DataGrid1.CurrentPageIndex == this.DataGrid1.PageCount -1)
????{
???if (this.DataGrid1.CurrentPageIndex == 0)
????{
?????this.DataGrid1.CurrentPageIndex = this.DataGrid1.PageCount -1;
????}
????else
????{
?????if (this.DataGrid1.Items.Count % this.DataGrid1.PageSize == 1)
?????{
??????CurrentPage = 2;
?????}
?????else
?????{
??????CurrentPage = 1;
?????}
?????this.DataGrid1.CurrentPageIndex = this.DataGrid1.PageCount - CurrentPage;
????}
?? }
????this.BindGrid();
???}
???else
???{
?????? msg.Alert("刪除數據錯誤!",Page);
???}
?
??}
????注釋:msg為一個類似WinForm的messagebox對話框,不必理會??梢允褂胠abel.Text代替
總結
以上是生活随笔為你收集整理的在分页状态下删除纪录的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: datagrid的正反双向排序
- 下一篇: 使用DataGrid动态绑定DropDo