Winforms GridView数据会随着无消息框的单击而消失

Winforms GridView数据会随着无消息框的单击而消失,winforms,datagridview,messagebox,Winforms,Datagridview,Messagebox,我有一个带有删除按钮的gridview。我添加了一个带有“是否确定”是/否的消息框。单击“是”时数据行将被删除,但单击“否”时gridview数据将消失 以下是“删除”按钮的代码单击: private void gvOrderLines_CellContentClick(object sender, DataGridViewCellEventArgs e) { int intOrderID = 0; if (e.RowIndex < 0 || e.ColumnIndex

我有一个带有删除按钮的gridview。我添加了一个带有“是否确定”是/否的消息框。单击“是”时数据行将被删除,但单击“否”时gridview数据将消失

以下是“删除”按钮的代码单击:

private void gvOrderLines_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    int intOrderID = 0;

    if (e.RowIndex < 0 || e.ColumnIndex != gvOrderLines.Columns["deleteBtn"].Index) return;

    Int32 orderLineID = (Int32)gvOrderLines[1, e.RowIndex].Value;

    DialogResult result = MessageBox.Show("Do you want to delete this item? ","Delete Item",MessageBoxButtons.YesNo);

    if (result == DialogResult.Yes)
    {
        using (SqlConnection conn = new SqlConnection(connection))
        {

            SqlCommand comm;

            comm = new SqlCommand("del_OrderLine", conn);
            comm.CommandType = CommandType.StoredProcedure;

            comm.Parameters.Add(new SqlParameter("@orderLineID", SqlDbType.Int));
            comm.Parameters["@orderLineID"].Value = orderLineID;

            comm.Parameters.Add("@ReturnValue", SqlDbType.Int).Direction = ParameterDirection.ReturnValue;

            try
            {
                conn.Open();
                comm.ExecuteNonQuery();

                intOrderID = (int)comm.Parameters["@ReturnValue"].Value;
            }
            catch 
            { 
                //tba
            }
            finally
            {
                comm.Dispose();
                conn.Close();
            }
        }
    }
    populateOrderLines(intOrderID); // This repopulates the gv so why is it blank?
    populateOrderTotals(intOrderID);
}
private void gvOrderLines\u CellContentClick(对象发送者,DataGridViewCellEventArgs e)
{
int intOrderID=0;
if(e.RowIndex<0 | | e.ColumnIndex!=gvOrderLines.Columns[“deleteBtn”].Index)返回;
Int32 orderLineID=(Int32)gvOrderLines[1,e.RowIndex]。值;
DialogResult=MessageBox.Show(“是否要删除此项目?”,“删除项目”,MessageBox按钮.YesNo);
if(result==DialogResult.Yes)
{
使用(SqlConnection conn=newsqlconnection(连接))
{
SqlCommand;
comm=新的SqlCommand(“del_OrderLine”,康涅狄格州);
comm.CommandType=CommandType.StoredProcess;
comm.Parameters.Add(新的SqlParameter(“@orderLineID”,SqlDbType.Int));
comm.Parameters[“@orderLineID”].Value=orderLineID;
comm.Parameters.Add(“@ReturnValue”,SqlDbType.Int).Direction=ParameterDirection.ReturnValue;
尝试
{
conn.Open();
comm.ExecuteNonQuery();
InOrderId=(int)comm.Parameters[“@ReturnValue”].Value;
}
抓住
{ 
//tba
}
最后
{
comm.Dispose();
康涅狄格州关闭();
}
}
}
populateOrderLines(intOrderID);//这会重新填充gv,为什么它是空的?
populateOrderTotals(InOrderId);
}
有什么建议吗

祝你一切顺利,
Numb

将这些行放入
if(result==DialogResult.Yes)
块中:

populateOrderLines(intOrderID); // This repopulates the gv so why is it blank?
populateOrderTotals(intOrderID);

您的DGV绑定到哪种类型的集合/数据源?如何在populateOrderLines方法中绑定数据?这就解决了问题,而且还降低了成本。非常感谢。谢谢你,你刚刚用英语教了一个新的表达:)“便士滴落”