如何修复输入字符串格式不正确的错误

本文关键字:不正确 错误 格式 字符串 何修复 输入 | 更新日期: 2023-09-27 18:23:57

第一个是带查询的函数,使用LicenseNumber访问tblDDDDDriver表中的maxdeathnumber,并将其显示在文本框中,列LicenseNumber的数据类型为十进制(18,0),它是tblDDDriver中的字段或列名之一。第二个是我为访问该函数而编码的内容。现在,当我点击按钮时,我显示错误输入字符串不是正确的格式

图像链接

public DataTable GetMaxDeathNo(decimal LicenseNumber)
{
     SqlConnection con = new SqlConnection("Data Source=(LocalDB)''MSSQLLocalDB; Integrated Security=True; Initial Catalog=tprojectDB;");
     string sql = "select Max(DeathNumber) as DeathNumber from tblDDDDeath where LicenseNumber=@LicenseNumber";/*"select Max(Value) from tblv where Licenseno=@licenseno"*/;
     SqlCommand cmd = new SqlCommand(sql, con);
     cmd.Parameters.AddWithValue("@LicenseNumber", LicenseNumber);
     SqlDataAdapter da = new SqlDataAdapter(cmd);
     DataTable dt = new DataTable();
     da.Fill(dt);
     return dt;
}

DataTable dd = dc.GetMaxDeathNo(Convert.ToDecimal(txtlicensenumber.Text));
if (dd.Rows.Count > 0)
{
     txtdeathaccidentno.Text = dd.Rows[0]["DeathNumber"].ToString();
}

如何修复输入字符串格式不正确的错误

您的Convert.ToDecimal(txtlicensenumber.Text)正在获取一个包含无效字符的字符串。

尝试将其更改为:

Decimal d;
if (Decimal.TryParse(txtlicensenumber.Text, out d))
{
  DataTable dd = dc.GetMaxDeathNo(d);
  if (dd.Rows.Count > 0)
  {
      txtdeathaccidentno.Text = dd.Rows[0]["DeathNumber"].ToString();
  }
}

您可以使用

Decimal.Parse(txtlicensenumber.Text)