我做過批准/拒絕的文件,但有一個問題管理員批准/拒絕一個文檔中
假設有在網格視圖3個文檔時,管理員登錄,並希望批准/拒絕只有1號文件,即文檔ID 81並點擊提交按鈕,然後數據在數據庫中保存
審批表
**seqno docid approveid approveby**
79 14 3 john
80 16 3 john
81 17 2 john
,但在我的代碼 當管理員批准/拒絕只有1(即81文檔ID)的文檔,而管理員在其他兩人隨後管理員沒有奏效點擊提交按鈕另外兩個文件的數據也被保存(即79,80個docid)表。爲什麼發生這種情況?
這裏提交按鈕代碼
protected void Button1_Click(object sender, EventArgs e)
{
string connStr =
ConfigurationManager.ConnectionStrings["mydms"].ConnectionString;
SqlConnection mySQLconnection = new SqlConnection(connStr);
if (mySQLconnection.State == ConnectionState.Closed)
{
mySQLconnection.Open();
}
foreach (GridViewRow row in GrdFileApprove.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
DropDownList DropDownListcontrol = row.FindControl("DropDownList4") as
DropDownList;
SqlCommand cmd = new SqlCommand("approveddd", mySQLconnection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@DocID", SqlDbType.Int).Value =
Convert.ToInt32((row.Cells[1].Text));
cmd.Parameters.Add("@ApproveID", SqlDbType.Int).Value =
Convert.ToInt32(DropDownListcontrol.SelectedValue);
cmd.Parameters.Add("@ApproveBy", SqlDbType.VarChar, 50).Value =
(Session["Login2"]);
cmd.ExecuteNonQuery();
DMSLIB.Doc myDoc = new DMSLIB.Doc();
myDoc.MarkDocAs(Convert.ToInt16(row.Cells[1].Text), Convert.ToInt32(DropDownListcontrol.SelectedValue));
}
else
{
apfi.Text = "Error";
}
}
if (mySQLconnection.State == ConnectionState.Open)
{
mySQLconnection.Close();
}
任何幫助嗎?
FYI .. this code'cmd.Parameters.Add(「@ DocID」,SqlDbType.Int).Value = Convert.ToInt32((row.Cells [1] .Text))'will will crash the update in無效輸入案例 –
看起來像你循環所有行並保存所有行,不是嗎? – LINQ2Vodka
另外,檢查你的存儲過程中的WHERE子句 – LINQ2Vodka