代码:
private bool updateValue()
{
bool bCanSave = true;
bool bCommitDate = true;
bool bRepairNegative = false;
bool bIsWorkingDay = true;
bool bIsValidDay = true;
bool bolOB = true;
foreach(DataGridItem dgi in dgCustInvItem.Items)
{
ListItemType lit = dgi.ItemType;
if (lit == ListItemType.Item || lit == ListItemType.AlternatingItem)
{
TextBox txtActualQty = (TextBox)dgi.FindControl("txtActualQty");
TextBox txtLineType = (TextBox)dgi.FindControl("txtLineType"); 
TextBox txtOV = (TextBox)dgi.FindControl("OV_QTY");
TextBox txtOB = (TextBox)dgi.FindControl("OB_QTY");
TextBox txtOTHERS = (TextBox)dgi.FindControl("OTHERS_QTY");
TextBox txtSCRAPE = (TextBox)dgi.FindControl("SCRAPE_QTY");

int iActualQty = 0;
try
{
iActualQty = Convert.ToInt32(txtActualQty.Text.Trim());
}
catch
{} int iOvQty = 0;
try
{
iOvQty = Convert.ToInt32(txtOV.Text.Trim());
}
catch
{} int iObQty = 0;
try
{
iObQty = Convert.ToInt32(txtOB.Text.Trim());
}
catch
{} int iOthersQty = 0;
try
{
iOthersQty =  Convert.ToInt32(txtOTHERS.Text.Trim());
}
catch
{} int iScrapeQty = 0;
try
{
iScrapeQty =  Convert.ToInt32(txtSCRAPE.Text.Trim());
}
catch
{} if(txtLineType.Text.Trim() == "EXTRA")
{
if (iActualQty==0)
{
bCanSave = false;
}
}
if(iActualQty-iOvQty-iObQty-iOthersQty-iScrapeQty < 0)
{
bRepairNegative = true;
} TextBox txtCommitDate = (TextBox)dgi.FindControl("COMMIT_DATE");
try
{
DateTime dtDate = Convert.ToDateTime(txtCommitDate.Text.Trim());
}
catch
{
bCommitDate = false;
}
if(bCommitDate && bIsWorkingDay)
{
com.siemens.smi.rgm.components.Calendar objCalendar = new com.siemens.smi.rgm.components.Calendar(DateTime.Now);
bIsWorkingDay = objCalendar.checkWorkingDate(txtCommitDate.Text.Trim());
}
if (bCommitDate && bIsWorkingDay && bIsValidDay)
{
DateTime dtDate = Convert.ToDateTime(txtCommitDate.Text.Trim() + " 23:59:59");
if(dtDate < DateTime.Now)
{
bIsValidDay = false;
} }
//For OB item, OB qty must equal to actual receive qty
CustInvLine line = new CustInvLine();
DataTable dtTmp = line.FindItem(dgi.Cells[2].Text);
if(dtTmp.Rows.Count > 0)
{
if(dtTmp.Rows[0]["item_type"].ToString().Trim() == "OB")
{
if(iActualQty != iObQty)
{
bolOB = false;
}
}
} }
} if(bCanSave && !bRepairNegative && bCommitDate && bIsWorkingDay && bIsValidDay && bolOB)
{
CustInvLine objLine = new CustInvLine();
foreach(DataGridItem dgi in dgCustInvItem.Items)
{ ListItemType lit = dgi.ItemType;
if (lit == ListItemType.Item || lit == ListItemType.AlternatingItem)
{
TextBox txtActualQty = (TextBox)dgi.FindControl("txtActualQty");
TextBox txtOV = (TextBox)dgi.FindControl("OV_QTY");
TextBox txtOB = (TextBox)dgi.FindControl("OB_QTY");
TextBox txtOTHERS = (TextBox)dgi.FindControl("OTHERS_QTY");
TextBox txtSCRAPE = (TextBox)dgi.FindControl("SCRAPE_QTY");
TextBox txtRe = (TextBox)dgi.FindControl("txtRes"); 
TextBox txtCommitDate = (TextBox)dgi.FindControl("COMMIT_DATE"); objLine.UpdateQuantity(lblCustID.Text.Trim(),lblCustInv.Text.Trim(),dgi.Cells[1].Text.Trim(),"1",txtActualQty.Text.Trim(),
txtOV.Text.Trim(),txtOB.Text.Trim(),txtOTHERS.Text.Trim(),txtSCRAPE.Text.Trim(),txtCommitDate.Text.Trim(), txtRe.Text.Trim(),HttpContext.Current.User.Identity.Name);
}
}
btnVerifiy.Enabled = true;
FillGrid();
}
else
{
string strResponse = "";
if(bRepairNegative)
{
strResponse = " <script language='JavaScript'>"   +
"  alert(\"Repair Quantity can not be negative!\");"   +
" </script>"  ;
}
else if(!bCanSave)
{
strResponse = " <script language='JavaScript'>"   +
"  alert(\"Actual Rec'd Quantity can not be zero on the EXTRA line!\");"   +
" </script>"  ;
}
else if(!bCommitDate)
{
strResponse = " <script language='JavaScript'>"   +
"  alert(\"Commit Date format is wrong or can not be blank!\");"   +
" </script>"  ;
}
else if(!bIsWorkingDay)
{
strResponse = " <script language='JavaScript'>"   +
"  alert(\"Commit Date is NON WORKING DAY!\");"   +
" </script>"  ;
}
else if(!bIsValidDay)
{
strResponse = " <script language='JavaScript'>"   +
"  alert(\"Commit Date must be late than today!\");"   +
" </script>"  ;
}
else if(!bolOB)
{
strResponse = "<script language=javascript>alert('Obsolete qty must equal to actual received qty!');</script>";
}
Response.Write(strResponse);
}
return (bCanSave && !bRepairNegative);
}
参考一下

解决方案 »

  1.   

    /// <summary>
    /// 【方法02】:执行多个SQL语句
    /// </summary>
    /// <param name="sqlArray">动态数组:需要执行的多个SQL语句</param>
    public static bool RunMultiSQL(System.Collections.ArrayList sqlArray)
    {
    if(sqlArray.Count < 1) return true; bool success = false; SqlConnection tmpConn = Common.MySettings.MyConn;
    SqlCommand tmpCmm = new SqlCommand();
    tmpCmm.Connection = tmpConn;
    tmpConn.Open(); SqlTransaction tmpTrans = tmpConn.BeginTransaction();
    tmpCmm.Transaction = tmpTrans;
    try
    {
    for(int i=0;i<sqlArray.Count;i++)
    {
    tmpCmm.CommandText = sqlArray[i].ToString();
    tmpCmm.ExecuteNonQuery();
    } tmpTrans.Commit(); success = true;
    Common.ShowMsg("保存成功!");
    }
    catch(System.Exception ex)
    {
    tmpTrans.Rollback();
    Common.ShowMsg("保存失败!");
    Common.ShowMsg(ex.ToString());
    }
    finally
    {
    tmpTrans.Dispose();
    tmpConn.Close();
    }
    return success;
    }
      

  2.   

    另外,直接使用dataadapter.update()也可以同时更新多条记录