0

我完成了批准/拒绝文件,但有问题

假设管理员登录时网格视图中有 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();
        }

有什么帮助吗?

4

1 回答 1

0

您循环遍历所有行并为每个项目运行存储过程。

于 2013-11-04T20:28:36.567 回答