c# - 从 DataGridView 数据源错误中删除行
问题描述
我为我的删除按钮写了这些行。对我来说没有出现任何错误,但该按钮不执行任何操作,有时我会从 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");
}
}
解决方案
该异常意味着您正在尝试将非数字或空字符串转换为 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");
}
推荐阅读
- postgresql - JDBC ConnectException: null (ARRAY) 类型没有到 SQL 数据库列类型的映射
- c++ - 在给定一个 std::variant 类型的 C++ 中,可以添加其他类型来创建另一种变体类型吗?
- sql - 根据单词拆分字符串
- python - SettingWithCopyWarning,不确定我的 df 分配究竟发生在哪里
- java - 在java中使用正则表达式从字符串中获取单词
- html - cakephp - 如何使用 $this->Html->link 作为标签
- powershell - 我可以获取一个文本文件并将其用作变量来搜索大量文件的驱动器上的位置吗?(使用电源外壳)
- javascript - 检查点是否在圆圈内
- regex - 在 Java 8 字符串中搜索列表中是否存在单词
- python-3.x - CX_FREEZE 无法导入 easygui tkinter mo