转换时输入字符串格式不正确,将值插入循环内的数据库



我正在将字符串">1234,5678,9101,1213"放入一个数组中,以便我可以遍历此数组并插入到数据类型为 int 的数据库列名称">CardID"中。

错误信息:

异常

详细信息:系统格式异常:输入字符串不在 格式正确。

奇怪的是,即使存在错误,循环中的值也会插入到数据库表中。

文件卡控制器.cs

//1234,5678,9101,1213,
string[] CardNumbers = model.CardsNumbers.Split(',');
foreach (string CardNumber in CardNumbers)
{
    Card Card = new Card();
    Card.CardID = Convert.ToInt32(CardNumber); //Input string was not in a correct format.
    Card.TaxPayerTIN = model.TaxPayerTIN;
    Card.PortID = model.PortID;
    Card.AddedUserID = 1;
    Card.AddedDateTime = DateTime.Now;
    db.Cards.Add(Card);
    db.SaveChanges();
}

字符串"1234,5678,9101,1213"以分隔符 (","( 结尾,因此 String.Split 返回的数组的最后一个元素将是空字符串。将空字符串传递给 Convert.toInt32 是一个格式错误。

可以通过指定 StringSplitOptions.RemoveEmptyEntries: 来避免此行为:

model.CardsNumbers.Split(',', StringSplitOptions.RemoveEmptyEntries);

删除空条目 - 返回值不包括包含空字符串的数组元素

最新更新