[求教]--DataGrid裡的數據為什麼不能及時更新?
我在DataGrid添加右鍵菜單刪除,刪除後在DataGrid不及時顯示出來,只有到刪除下一條才能顯示
請賜教:
private void menDel_Click(object sender, System.EventArgs e)
{
try
{
//設置提示信息
string sOrderId = gridIN[this.gridIN.CurrentRowIndex,0].ToString();
string sOrderNo = gridIN[this.gridIN.CurrentRowIndex,1].ToString();
string sProductNo = gridIN[this.gridIN.CurrentRowIndex,2].ToString();
string sProductName = gridIN[this.gridIN.CurrentRowIndex,3].ToString();
string allMsg = "ORDER_ID="+sOrderId+" ORDER_NO="+sOrderNo+" PRODUCT_NO="+sProductNo;
allMsg += " PRODUCT_NAME="+sProductName+'\r';
string sMessage =allMsg +":"+ x.SelectSingleNode("//START/DEL_MSG").InnerText;
//提示對話框
DialogResult oResult = MessageBox.Show(sMessage,"Notice",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
if(oResult == DialogResult.Yes)
{
//初始化要刪除記錄的SQL並在狀態欄顯示
string delSql = " DELETE FROM CUSTOM_ORDER WHERE ORDER_ID = " + sPtext.SQLQ(int.Parse(sOrderId));
staPanNotice.Text = " Delete Task Now Process.Please Waitting!";
try
{
//執行刪除操作
int nTranRelult = oTran.UpdateCmd(delSql);
//在DATAGRID中重新顯示,刪除後的記錄
Timeout.Infinite = 10000;
staPanNotice.Text = " Operation Success!";
}
catch(Exception de)
{
//刪除失敗顯示錯誤
MessageBox.Show(de.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
}
catch
{
string sError = x.SelectSingleNode("//START/ERROR_DEL").InnerText;
MessageBox.Show(sError,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
刪除後調用的顯示函數
#region Show DataGride Data Update
private void dgCustom()
{
gridIN.TableStyles.Clear();
try
{
DataSet oDs = new DataSet();
string sql = "SELECT TOP 20 ORDER_ID, ORDER_NO AS 客戶訂單號,PRODUCT_NAME,PRODUCT_NO,PRODUCT_ITEM,";
sql += "PRODUCT_SOURCE,PRODUCT_PRICE FROM CUSTOM_ORDER ORDER BY CREATE_DATE";
//Retrieval DataSet
oDs = oRetv.Select(sql);
txtCumNo.Text = gridIN.TableStyles.Count.ToString();
//建立數據源
gridIN.SetDataBinding(oDs,oDs.Tables[0].TableName);
gridIN.Refresh();
DataGridTableStyle ts = new DataGridTableStyle();
ts.SelectionBackColor = System.Drawing.SystemColors.Desktop;
ts.AllowSorting = false;
ts.ReadOnly = true;
ts.MappingName = gridIN.DataMember;
//如要此tablestyle存在就不在增加
gridIN.TableStyles.Add(ts);
txtStand.Text = gridIN.TableStyles.Count.ToString();
gridIN.TableStyles[0].GridColumnStyles[0].Width = 0;
}
catch(Exception showe)
{
MessageBox.Show(showe.Message,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
#endregion