[英]Input string was not in a correct format when converting, insert values into the database inside the loop
我正在将字符串“ 1234,5678,9101,1213 ”放入一个数组中,以便可以遍历该数组并将其数据类型为int的列名“ CardID ”插入数据库中。
错误信息:
异常详细信息:System.FormatException:输入字符串的格式不正确。
奇怪的是,即使有错误,也会将循环中的值插入到数据库表中。
文件 : CardsController.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是格式错误。
您可以通过指定S tringSplitOptions.RemoveEmptyEntries来避免此行为:
model.CardsNumbers.Split(',', StringSplitOptions.RemoveEmptyEntries);
RemoveEmptyEntries-返回值不包括包含空字符串的数组元素
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.