c#错误:输入字符串格式不正确

本文关键字:格式 不正确 字符串 输入 错误 | 更新日期: 2023-09-27 18:17:13

我是c#的初学者,目前正在尝试一个windows窗体项目。我设计了一个名为drugform的表单。我使用dataset方法连接到数据库。下面是我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Windows.Forms;
using drugstoreform.BaseInfoTableAdapters;

namespace drugstoreform
{
    public partial class DrugForm : Form
    {
        int Row = -1;
        public DrugForm()
    {
        InitializeComponent();
    }
    private void Register_click(object sender, EventArgs e)
    {
        try
        {
            dbm_Medecine db = new dbm_Medecine();
            db.Insert(Convert.ToInt32(DrugCode.Text.Trim()), DrugName.Text.Trim(), Convert.ToString(HowUse.Text.Trim()), Convert.ToDecimal(price.Text.Trim()));
        }
        catch(SqlException ex)
        {
        }

当我点击注册按钮时,我得到这个错误:input string was not in a correct format .

c#错误:输入字符串格式不正确

您在Convert.ToInt32和/或Convert.ToDecimal中得到错误,因为输入无效。您可以使用int.TryParsedecimal.TryParse来验证它:

int drugCode;
decimal price;
if (int.TryParse(DrugCode.Text.Trim(), out drugCode) && decimal.TryParse(price.Text.Trim(), out price))
{
    db.Insert(drugCode, DrugName.Text.Trim(), HowUse.Text.Trim(), price);
}

if中,drugCodeprice用正确的值初始化。否则,您应该提供一个错误消息,要求用户提供正确的输入。

可能的原因:也许用户输入2.6,但计算机使用,作为十进制分隔符。或者DrugCode.Textprice.Text为空