簡體   English   中英

C#使用存儲過程從datagridview刪除多個選擇每次都傳遞相同的單元格值

[英]C# delete multiple selection from datagridview using stored procedure pass the same cell value each time

我正在使用具有datagridview的form1,用戶應使用存儲過程刪除要刪除的行來選擇要刪除的多行。

但是存儲過程每次用戶嘗試刪除時都會獲得相同的值,而存儲過程根據行數多次執行

private void btnDelete_Click(object sender, EventArgs e)
{
    List<DataGridViewRow> selectedRows = (from row in gvhistorder.SelectedRows.Cast<DataGridViewRow>()select row).ToList();

    if (MessageBox.Show(string.Format("Do you want to delete {0} rows?", selectedRows.Count), "Confirmation", MessageBoxButtons.YesNo) == DialogResult.Yes)
    {
        DataGridViewSelectedRowCollection rows = gvhistorder.SelectedRows;

        foreach (DataGridViewRow row in rows)
        {
            DataRow myRow = (row.DataBoundItem as DataRowView).Row;
            int order_num = (int)gvhistorder.SelectedRows[0].Cells["order_number"].Value;

            SqlCommand cmd = new SqlCommand("DelHisOL", con);           
            cmd.CommandType = CommandType.StoredProcedure;

            SqlParameter[] DelHistParm = new SqlParameter[3];
            DelHistParm[0] = new SqlParameter("@date", SqlDbType.DateTime);
            DelHistParm[0].Value = OrderDate.Text;
            DelHistParm[1] = new SqlParameter("@store", SqlDbType.VarChar, 10);
            DelHistParm[1].Value = store.SelectedValue;
            DelHistParm[2] = new SqlParameter("@orderNum", SqlDbType.Int);
            DelHistParm[2].Value = order_num;

            cmd.Parameters.AddRange(DelHistParm);

            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
        }
    }
}

問題出在@orderNum :它為每一行獲取相同的值

像這樣更改代碼:

 int order_num =(int) row.Cells["order_number"].Value;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM