我正在将字符串">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);
删除空条目 - 返回值不包括包含空字符串的数组元素