private void btnDel_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Are you sure to Delete this Record?", "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Stop) == DialogResult.Yes)
{
using (SFCDataContext SFC = new SFCDataContext())
{
var countRec = SFC.Systems_MonitoringMeasurementHeaders.Where(t => t.DocNO == DocNum.Text && t.DetailsDocNum == clsVariable.GetDocNumRecord).Count();
if (countRec > 0)
{
Systems_MonitoringMeasurementHeader Table = SFC.Systems_MonitoringMeasurementHeaders.FirstOrDefault(r => r.DocNO == DocNum.Text && r.DetailsDocNum == clsVariable.GetDocNumRecord);
SFC.Systems_MonitoringMeasurementHeaders.DeleteOnSubmit(Table);
}
var countRecDetails = SFC.Systems_MonitoringMeasurementDetails.Where(y => y.DocNO == DocNum.Text && y.DetailsDocNum == clsVariable.GetDocNumRecord).Count(); <-- Starts here..
if (countRecDetails > 0)
{
for (int i = 0; i < countRecDetails; i++)
{
Systems_MonitoringMeasurementDetail TableDetails = SFC.Systems_MonitoringMeasurementDetails.FirstOrDefault(w => w.DocNO == DocNum.Text && w.DetailsDocNum == clsVariable.GetDocNumRecord);
SFC.Systems_MonitoringMeasurementDetails.DeleteOnSubmit(TableDetails);
}
} <-- Til here
SFC.SubmitChanges();
SFC.Connection.Close();
gfunc.setMessageBox("Delete Successful!", 2);
ClearFields(2);
btnSetLock(true, false, true, false, false, false, false, true);
DocNum.Enabled = true;
DocNum.Focus();
}
}
}
問題是在刪除詳細記錄時,它確實執行刪除操作,但它只刪除一行。而不是5或更多..它只需要第一個條目。我通過調試中的引用找到的記錄的計數做出for循環語句,它顯示了記錄的確切計數。 5所以它循環刪除記錄5次,但只刪除第一個條目,其餘都沒有。爲什麼?請幫忙。如何在此代碼中刪除多行記錄
- 更新 -
if (MessageBox.Show("Are you sure to Delete this Record?", "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Stop) == DialogResult.Yes)
{
using (SFCDataContext SFC = new SFCDataContext())
{
var countRec = SFC.Systems_MonitoringMeasurementHeaders.Where(t => t.DocNO == DocNum.Text && t.DetailsDocNum == clsVariable.GetDocNumRecord);
if (countRec.Count() > 0)
{
SFC.Systems_MonitoringMeasurementHeaders.DeleteAllOnSubmit(countRec.ToList());
}
var countRecDetails = SFC.Systems_MonitoringMeasurementDetails.Where(y => y.DocNO == DocNum.Text && y.DetailsDocNum == clsVariable.GetDocNumRecord);
if (countRecDetails.Count() > 0)
{
SFC.Systems_MonitoringMeasurementDetails.DeleteAllOnSubmit(countRecDetails.ToList());
}
SFC.SubmitChanges();
SFC.Connection.Close();
}
gfunc.setMessageBox("Delete Successful!", 2);
ClearFields(2);
btnSetLock(true, false, true, false, false, false, false, true);
DocNum.Enabled = true;
DocNum.Focus();
}
它的工作原理,但我不知道它的好不好。
你是否嘗試過SFC.SubmitChanges()for for循環? –
@masoumehkarvar比他已經有更多的查詢? –