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
.
您在Convert.ToInt32
和/或Convert.ToDecimal
中得到错误,因为输入无效。您可以使用int.TryParse
和decimal.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
中,drugCode
和price
用正确的值初始化。否则,您应该提供一个错误消息,要求用户提供正确的输入。
可能的原因:也许用户输入2.6
,但计算机使用,
作为十进制分隔符。或者DrugCode.Text
或price.Text
为空