我完成了批准/拒绝文件,但存在问题
假设在管理员登录时网格视图中有3个文档,并且只想批准/拒绝1个文档,即docid 81并单击“提交”按钮,然后将数据保存在数据库中
批准表
**seqno docid approveid approveby**
79 14 3 john
80 16 3 john
81 17 2 john
但在我的代码中 当管理员批准/拒绝仅1(即81 docid)文档而管理员没有在其他两个工作时,然后管理员点击提交按钮然后其他两个文件数据也保存在批准(即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();
}
任何帮助?
答案 0 :(得分:0)
循环遍历所有行并为每个项目运行存储过程。