从DataGridView数据源中删除行错误

问题描述 投票:0回答:1

我为删除按钮写了这些行。对我来说没有错误出现,但是按钮没有任何作用,有时我从vb中收到此错误

[mscorlib.dll“中发生了'System.FormatException'类型的未处理异常,并且在此行中选择了代码”“ c。PatientID = Convert.ToInt32(txtBoxPatientID.Text);

知道如何使删除按钮起作用吗?

private void btnSupprimer_Click(object sender, EventArgs e)
{
    // Get Patient ID from app
    c.patientID = Convert.ToInt32(txtBoxPatientID.Text);
    bool success = c.Delete(c);

    if (success == true)
    {
        // Successfully Deleted
        MessageBox.Show(" Operation reussite");
        // refresh data grid
        // Load data into DataGridView
        DataTable dt = c.Select();
        dgvContactList.DataSource = dt;
        // Call the clear method
        Clear();
    }
    else
    {
        // failed to delete
        MessageBox.Show(" Operation echouée");
    }
}
c# winforms datagridview datatable
1个回答
0
投票

异常表示您正在尝试将非数字或空字符串转换为Int32。我相信问题在这里:

c.patientID = Convert.ToInt32(txtBoxPatientID.Text);

换句话说,当您单击该按钮并且txtBoxPatientID不包含任何字符或带有或不带有数字的任何字符时,您将得到所提到的异常。

最好尝试解析文本框的内容,以检查输入的格式是否正确。如果是,则进行其他操作,例如显示验证消息。

尝试:

int i;

if(!int.TryParse(txtBoxPatientID.Text, out i))
{
    return; //or message the user to enter a valid input.
}
// Get Patient ID from app
c.patientID = i;
bool success = c.Delete(c);
if (success == true)
{
    // Successfully Deleted
    MessageBox.Show(" Operation reussite");
    // refresh data grid
    //Load Data on Data GridView
    DataTable dt = c.Select();
    dgvContactList.DataSource = dt;
    // Call the clear method
    Clear();
}
else
{
    // failed to deleted
    MessageBox.Show(" Operation echouée");
}
© www.soinside.com 2019 - 2024. All rights reserved.